2017-03-28 30 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' } ] }" 
);