我有一个返回以下json的Web服务
{
"1": 1.654764367578323,
"3": 1.654764367578323,
"4": 1.654764367578323,
"6": 1.654764367578323,
"12": 1.13901127184207
}
此外可能有10或15或24如下。所以我需要检查以下名称是否在json字符串1,3,4,6,10,15,24
中{
"1": 1.654764367578323,
"3": 1.654764367578323,
"4": 1.654764367578323,
"6": 1.654764367578323,
"10": 1.13901127184207
}
我想反序列化上面的json所以我试过
dynamic d = JsonConvert.DeserializeObject(jsonstring);
但我不能做d.1并获得值1.654764367578323。
然而,在手表中,我得到了#34;期待结束的表达"
答案 0 :(得分:8)
您可以将JsonConvert.DeserializeObject(jsonstring)返回的对象强制转换为JObject,然后就可以读取这些值。
JObject d = (JObject)JsonConvert.DeserializeObject(jsonString);
string value1 = d["1"].Value<string>();
这是Demo
您始终可以检查返回的JToken是否为null,如果JObject无法找到索引器中提供的属性,则它将为null。
bool attributeExist = d[attribute] != null;
请参阅Here
答案 1 :(得分:1)
尝试d [12]。这很大程度上取决于你的Json库。