2017-10-17 30 views
0

JSON來訪問內部字符串化JSON數據:如何使用JavaScriptSerializer

{ 
    "o-data":[ 
     { 
      "entry 1":"test1", 
      "entry 2":"test2", 
      "entry 3":"test3", 
      "entry 4":"118" 
     } 
    ] 
} 

C#:

dynamic dn = dyndata(json); 
foreach (KeyValuePair<string, object> kvp in dn) 
{ 
    //I would like to be able to get all the inner data for `o-data` like below... 
    string entry1 = "";// test1 
    string entry2 = "";// test2 
    string entry3 = "";// test3 

    //but instead I get `{[o-data, System.Object[]]}` 
    string second = kvp.Value.ToString(); // gives my 'System.Object[]' 
} 

public dynamic dyndata(string json) 
{ 
    dynamic dyn1 = new System.Dynamic.ExpandoObject(); 
    try 
    { 
     var serializer = new JavaScriptSerializer(); 
     var result = serializer.DeserializeObject(json); 
     return result); 
    } 
    catch { return Tuple.Create(dDummy, false); } 
} 

我怎麼能內部列表爲 'O-數據' 的KVP。

由於o-data,目前它僅循環一次。我想獲得o-data的內部列表並循環瀏覽。

回答

2

一些鑄件是必需的:
1)投了kvp.Valueobject[],因爲「O型數據」包含數組
2)施放此數組的第一個項目IDictionary<string, object>

dynamic dn = dyndata(json); 
foreach (KeyValuePair<string, object> kvp in dn) 
{ 
    var array = ((object[])kvp.Value); 
    var dictionary = (IDictionary<string, object>) array[0]; 
    var entry1 = dictionary["entry 1"]; 
} 
+0

謝謝。 。這是奇怪的,在本地你的代碼工作,但我不得不恢復到我的代碼正常工作時,該網站託管在IIS中......奇怪的怪異怪異!謝謝您的幫助。 +1並被接受。 – Si8

相關問題