我正在尝试使用JsonConvert反序列化一些Json。我想要处理的JSON示例是:
2 {
3 'Name': 'Product 1',
4 'ExpiryDate': '2000-12-29T00:00Z',
5 'Price': 99.95,
6 'Sizes':{ 'Tall': 30
'ExtraTall':40
}
7 },
8 {
9 'Name': 'Product 2',
10 'ExpiryDate': '2009-07-31T00:00Z',
11 'Price': 12.50,
12 'Sizes': null
13 }
我已经尝试了一些类似的东西:
var handlerLocal= JsonConvert.DeserializeObject <Dictionary <string,Dictionary<string,string>>>(z);
直到现在我只使用这个处理简单列表:
var handlerLocal = JsonConvert.DeserializeObject<FriendsHandler>(z);
FriendHandler就像一个模特。但在这个新案例中,我在List中有一个List,这就是杀了我。
任何人都可以帮助我吗? 最好的问候
答案 0 :(得分:0)
通常使用INSERT Course
(Course_ID,Course_Name,Full_Part_Time,Course_Fees,Course_Leader)
Values
(1,'Radio Production','Full Time','Yes','Rick Rubin'),
(2, 'Marketing','Part Time','NO','Gavin Evans'),
(3,'Business Information Systemys','Full Time','Yes','Liam Malone'),
(4,'Mixology','Full Time','No','Slim Denby'),
(5,'Business Studies','Part Time','Yes','John Doe');
,您可以编写一个与您正确解析的对象匹配的对象,然后使用DeserializeObject。
在这种情况下,您提供的JSON无效。在这种情况下它会是一本字典:
JSON.net
我认为它应该是一个数组,这意味着它应该被{'thing1': {
'Name': 'Product 1',
'ExpiryDate': '2000-12-29T00:00Z',
'Price': 99.95,
'Sizes':{ 'Tall': 30
'ExtraTall':40
}
},
'thing2': {
'Name': 'Product 2',
'ExpiryDate': '2009-07-31T00:00Z',
'Price': 12.50,
'Sizes': null
}}
包围。
要解析此问题,请执行以下操作:
[]
答案 1 :(得分:0)
在尝试反序列化JSON时,我发现最好使用Json2Sharp.com创建包含数据的类,但是您提供的JSON无效,因此无法创建类从此。
如果你能找到一些有效的JSON,这个工具将为你处理其余的工作。
答案 2 :(得分:0)
创建一个这样的模型:
public class Product
{
public string Name { get; set; }
public DateTime ExpiryDate { get; set; }
public decimal Price { get; set; }
public Dictionary<string, int> Sizes { get; set; }
}
获取您的JSON
var productsJson = << Call some repo that returns json string >>
然后致电
var products = JsonConvert.DeserializeObject<List<Product>>(productsJson);
注意:您需要先使JSON有效,目前在语法上是不正确的
****** ******* EDIT
问题需要更新(见评论),你的模型看起来像这样
public class Self
{
public string DeviceID { get; set; }
public string TimeStamp { get; set; }
}
public class Location
{
public string RoomID { get; set; }
public string Room { get; set; }
}
public class Friend
{
public string IdUser { get; set; }
public string Name { get; set; }
public Location Location { get; set; }
}
public class RootObject
{
public Self Self { get; set; }
public List<Friend> Friends { get; set; }
}
然后
var products = JsonConvert.DeserializeObject<RootObject>(productsJson);