我很擅长将JSON和Newtonsoft一起使用,我试图使用JArray()成功复制这种格式而没有成功。有没有人对如何实现这一点有任何想法?
"attrList":[
{
"name":"Attendee Status",
"val":"Accepted"
},
{
"name":"Attendee Type",
"val":"Attendee"
}
]
答案 0 :(得分:1)
使用手动JArray
创建,您可以按以下方式执行此操作:
var root = new JObject
(
new JProperty("attrList",
new JArray
(
new JObject
(
new JProperty("name", "Attendee Status"),
new JProperty("val", "Accepted")
),
new JObject
(
new JProperty("name", "Attendee Type"),
new JProperty("val", "Attendee")
)
)
)
);
你写了我一直遇到的错误是键是相同的,所以你可能会做这样的事情:
var root = new JObject
(
new JProperty("attrList",
new JArray
(
new JObject
(
new JProperty("name", "Attendee Status"),
new JProperty("val", "Accepted"),
new JProperty("name", "Attendee Type"),
new JProperty("val", "Attendee")
)
)
)
);
请注意,只创建了一个内部对象而不是两个?如果您忘记分配两个对象,最终会尝试将属性"name"
和"val"
添加两次,从而重现问题。
示例fiddle。
答案 1 :(得分:0)
public class Parent
{
public List<Attribute> attrList{ get; set; }
}
public class Attribute
{
public string name{ get; set; }
public string val{ get; set; }
}
var parsedParent = JsonConvert.DeserializeObject<Parent>(
"{ 'attrList':[ { 'name':'Attendee Status', 'val':'Accepted' }, { 'name':'Attendee Type', 'val':'Attendee' } ] }"
);