2017-08-21 24 views
2

これを実現する方法はありますか? 私はJSONオブジェクトの配列をデシリアライズしてC#anonymousに

var result = JsonConvert.DeserializeAnonymousType(json, definition); 

var definition = new { Name = ""}; 

にC#の匿名型に

string json = @"{'Name':'Mike'}"; 

をのような単一のJSONオブジェクトをデシリアライズ問題はありませんが、私は

string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]"; 

を持っている場合立ち往生している。 ありがとう!

+2

を私はdynamic'は、あなたが探している言葉である 'だと思います。 C#関数は匿名型を返すことはできません。 – Jodrell

+1

'JArray'も動作します:' JArray arr = JsonConvert.DeserializeObject(jsonArray)as JArray; ' – Crowcoder

+0

またはhttps://www.newtonsoft.com/json/help/html/QueryJsonDynamic.htm – Jodrell

答えて

1

動的オブジェクトにこれをデシリアライズすることができます。

dynamic result = JsonConvert.DeserializeObject(jsonArray); 
+0

などのようにそれにアクセスできます。 var result2 = Newtonsoft.Json.JsonConvert.DeserializeObject (jsonArray); - あなたはそれを好きなように 結果2 [0] .Name –

0

1つの方法は、JSON配列文字列に識別子を入れることです。

このコードは、私の仕事:

var typeExample = new { names = new[] { new { Name = "" } } }; 
string jsonArray = @"{ names: [{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]}"; 

var result = JsonConvert.DeserializeAnonymousType(jsonArray, typeExample); 
関連する問題