2017-03-28 5 views
0

JSONとNewtonsoftを一緒に使用するのは初めてです。このフォーマットをJArray()を使用しなくても複製しようとしています。誰にどのようにこれを達成できるかについてのアイデアはありますか?マニュアルJArray作成を使用しC#を使用したNewtonsoftのJSON配列

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

私が実行し続けるエラーは、キーが同じであることです。 –

+1

これまでに何を試しましたか? –

答えて

1

次のように、あなたはそれを行うことができます。

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

2つではなく、1つの内部オブジェクトが作成されていますか?両方のオブジェクトの割り当てを忘れると、プロパティー"name""val"を2回追加することになり、問題が再現されます。

サンプル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' } ] }" 
); 
関連する問題