我试图使用一个API,使用以下示例结构为他们返回的json
[
{
"customer":{
"first_name":"Test",
"last_name":"Account",
"email":"test1@example.com",
"organization":"",
"reference":null,
"id":3545134,
"created_at":"2013-08-06T15:51:15-04:00",
"updated_at":"2013-08-06T15:51:15-04:00",
"address":"",
"address_2":"",
"city":"",
"state":"",
"zip":"",
"country":"",
"phone":""
}
},
{
"customer":{
"first_name":"Test",
"last_name":"Account2",
"email":"test2@example.com",
"organization":"",
"reference":null,
"id":3570462,
"created_at":"2013-08-12T11:54:58-04:00",
"updated_at":"2013-08-12T11:54:58-04:00",
"address":"",
"address_2":"",
"city":"",
"state":"",
"zip":"",
"country":"",
"phone":""
}
}
]
Run Code Online (Sandbox Code Playgroud)
JSON.net可以使用类似以下结构的东西
{
"customer": {
["field1" : "value", etc...],
["field1" : "value", etc...],
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何让它对提供的结构感到满意.
使用默认的JsonConvert.DeserializeObject(content)会生成正确的Customer数,但所有数据都为null.
在CustomerList(下面)执行某些操作会导致"无法反序列化当前JSON数组"异常
public class CustomerList
{
public List<Customer> customer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
思考?
Jof*_*ern 174
您可以创建一个新模型来反序列化您的Json CustomerJson:
public class CustomerJson
{
[JsonProperty("customer")]
public Customer Customer { get; set; }
}
public class Customer
{
[JsonProperty("first_name")]
public string Firstname { get; set; }
[JsonProperty("last_name")]
public string Lastname { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
你可以轻松地反序列化你的json:
JsonConvert.DeserializeObject<List<CustomerJson>>(json);
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你 !
文档:序列化和反序列化JSON
Tyl*_*ong 45
对于那些不想创建任何模型的人,请使用以下代码:
var result = JsonConvert.DeserializeObject<
List<Dictionary<string,
Dictionary<string, string>>>>(content);
Run Code Online (Sandbox Code Playgroud)