2017-03-28 2 views
0

Ich bin ziemlich neu zu JSON und Newtonsoft zusammen zu verwenden, und ich versuche, dieses Format ohne Erfolg mithilfe von JArray() zu replizieren. Hat jemand irgendwelche Ideen, wie dies erreicht werden kann?JSON-Array in Newtonsoft mit C#

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

Der Fehler, den ich laufe, ist, dass die Schlüssel die gleichen sind. –

+1

Was hast du bisher versucht? –

Antwort

1

Mit manuellen JArray Erstellung, können Sie es tun, wie folgt:

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

Sie schrieb Der Fehler, den ich in Laufen halten, ist der Schlüssel die gleiche zu sein, so dass Sie wahrscheinlich sind etwas stattdessen tun:

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 dass nur ein inneres Objekt geschaffen wird und nicht zwei? Wenn Sie vergessen, beide Objekte zuzuweisen, werden Sie am Ende versuchen, die Eigenschaften "name" und "val" zweimal hinzuzufügen, wodurch das Problem reproduziert wird.

Probe fiddle.

Siehe auch Creating JSON: Manually Creating JSON.

+0

Danke! Ich wusste nicht, dass ich JObject so benutzen könnte. –

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