我有一个返回以下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。
但是,在手表中,我得到“期望结束表达”
最佳答案
您可以将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