2017-03-28 28 views
0

我是一起使用JSON和Newtonsoft的新手,我试图使用JArray()成功复制这种格式。有没有人有任何想法可以实现这个目标?使用C的Newtonsoft中的JSON数组#

"attrList":[ 
     { 
     "name":"Attendee Status", 
     "val":"Accepted" 
     }, 
     { 
     "name":"Attendee Type", 
     "val":"Attendee" 
     } 
    ] 
+0

我不断遇到的错误是关键是相同的。 –

+1

你到目前为止尝试过什么? –

回答

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") 
      ) 
     ) 
    ) 
); 

Notic e只有一个内部对象被创建而不是两个?如果忘记分配两个对象,则最终会尝试将属性"name""val"两次添加,从而重现问题。

样品fiddle。请参阅Creating JSON: Manually Creating JSON

+0

谢谢!我不知道我可以像这样使用JObject。 –

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' } ] }" 
);