如何使用 JavaScriptSerializer 访问内部字符串化 JSON 数据
How to access inner stringified JSON data using JavaScriptSerializer
JSON:
{
"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-data'.
内表的 KVP 如何获取
由于o-data
,目前它只循环一次。我想获取 o-data
的内部列表并遍历它。
需要一些铸件:
1) 将 kvp.Value
转换为 object[]
因为 "o-data" 包含一个数组
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"];
}
JSON:
{
"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-data'.
内表的 KVP 如何获取由于o-data
,目前它只循环一次。我想获取 o-data
的内部列表并遍历它。
需要一些铸件:
1) 将 kvp.Value
转换为 object[]
因为 "o-data" 包含一个数组
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"];
}