2016-05-26 8 views
0

逆シリアル化されたJSONオブジェクトの最初の項目から名前を取得しようとしています。 コードをデバッグすると、jsonObjectが辞書に変換されていることがわかりました。 jsonObjectから最初のアイテムの値を取得する方法シリアル化されたJSONの最初の項目を読み取る

var myJson= [ 
{name:'abc',city:'dallas'}, 
{name:'def',city:'redmond'}, 
{name:'ghi',city:'bellevue'}, 
] 

JavaScriptSerializer jss = new JavaScriptSerializer(); 
var jsonObject = jss.Deserialize<dynamic>(myJson); 

NameInFirstItem = jsonObject[0].name; 

答えて

1

でJSONをデシリアライズすることができます

var NameInFirstItem = jsonObject[0]["name"]; 
1

この試してみてください:あなたは

 public class Details 
     { 
      public string name { get; set; } 
      public string city { get; set; } 
     } 

    var res = JsonConvert.DeserializeObject<Details[]>(json); 
    var name = res[0].name; 
1

をあなたの結果のオブジェクトを保持するためにclassを作成します。

public class MyJsonResult 
{ 
    public string name { set; get; } 
    public string result { set; get; } 
} 

static void Main(string[] args) 
{ 
    string myJson = "[{ name: 'abc',city: 'dallas'},{ name: 'def',city: 'redmond'},{ name: 'ghi',city: 'bellevue'}]"; 

    JavaScriptSerializer jss = new JavaScriptSerializer(); 
    List<MyJsonResult> jsonResultList = jss.Deserialize<List<MyJsonResult>>(myJson); 

    var NameInFirstItem = jsonResultList.FirstOrDefault().name; 
} 

をかあなたは、動的使用を主張する場合:

static void Main(string[] args) 
{ 
    string myJson = "[{ name: 'abc',city: 'dallas'},{ name: 'def',city: 'redmond'},{ name: 'ghi',city: 'bellevue'}]"; 

    JavaScriptSerializer jss = new JavaScriptSerializer(); 
    var jsonResultList = jss.Deserialize<List<dynamic>>(myJson); 

    // get first value by key from the dictionary 
    var NameInFirstItem = jsonResultList.FirstOrDefault()["name"]; 
} 

は、私が最初の方法を好みます。 jsonに3番目のプロパティを追加すると、おそらくリスト内の各オブジェクトのキーと値のペアのリストである生成されたオブジェクトのタイプと混同される可能性があります。

関連する問題