2016-04-26 6 views
0

json.netを使用してオブジェクトをjson文字列にシリアル化しています。今、私はJson配列に直列化したいObjectのリストを持っています。しかし、私はjson.netでそれを行うことができず、誰かが私の間違いを指摘してくれることを願っています。 json.netはJSON配列のシリアル化をリストします

I持って、次のクラス:

[ 
    { 
    "inputs": { 
     "name": "Name 1", 
     "age": 20 
    } 
    }, 
    { 
    "inputs": { 
     "name": "Name 2", 
     "age": 30 
    } 
    } 
] 

:これは私に次のような出力を提供します

var json = new List<PeopleList>(); 
Person p1 = new Person { name = "Name 1", age = 20 }; 
json.Add(new PeopleList { inputs = p1 }); 
Person p2 = new Person { name = "Name 2", age = 30 }; 
json.Add(new PeopleList { inputs = p2 }); 


     string jsonString = JsonConvert.SerializeObject(json, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented }); 

:私は、オブジェクトをシリアル化するために、次のコードを使用してい

class PeopleList { 
    public Person inputs { get; set; } 
} 

class Person { 
    public String name { get; set; } 
    public int age { get; set; } 
} 

ここに私が実際に望むものがあります:

[ 
    { 
    "inputs": [ 
     { 
     "name": "Name 1", 
     "age": 20 
     } 
    ] 
    }, 
    { 
    "inputs": [ 
     { 
     "name": "Name 2", 
     "age": 30 
     } 
    ] 
    } 
] 

私のリストには、[]でカプセル化されたすべてのオブジェクトが必要です。どうすればJson.netでそれを達成できますか?ありがとう!

+0

JSONで配列にしたい場合は、 'inputs'をリストまたは配列にしてください –

答えて

2

あなたの入力は配列になりたい場合は、あなたがオブジェクトの配列として宣言する必要があります:

class PeopleList { 
    public List<Person> inputs { get; set; } 
} 

次に、あなたがそれを使用することができます:あなたの出力に基づいて

var json = new List<PeopleList>(); 
List<Person> p1 = new List<Person> { new Person { name = "Name 1", age = 20 } }; 
json.Add(new PeopleList { inputs = p1 }); 
List<Person> p2 = new List<Person> { new Person { name = "Name 2", age = 30 } }; 
json.Add(new PeopleList { inputs = p2 }); 

string jsonString = JsonConvert.SerializeObject(json, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented }); 
+0

素晴らしい!完璧に動作します!私は何とかしばらくの間、試してみたところ、解決策を見つけられませんでした。しかし、今は明らかです。ありがとう! – thunder

関連する問題