我正在检索内容项可能不同的JSON,并希望找到与特定键相关联的值,例如在这种情况下" geo_latitude"和" geo_longitude"。为清楚起见,我只在这个JSON示例中包含了这两个项目。 (它通常更长,没有特别的顺序)。
[
{
"id": 524616,
"key": "geo_latitude",
"value": "36.1069652"
},
{
"id": 524617,
"key": "geo_longitude",
"value": "-112.1129972"
}
]
这是我能够解析JSON的最佳方法。还有更好的方法吗?
var metadataObj = JArray.Parse(postMetadataJsonStr);
var latContainer = metadataObj.Descendants()
.OfType<JObject>()
.Where(x => x["key"] != null &&
x["key"].Value<string>() == "geo_latitude").Select(y => y["value"]);
var latTokenJValue = latContainer.FirstOrDefault();
if (latTokenJValue == null) return;
var latitude = latTokenJValue.ToString();
答案 0 :(得分:0)
我会将你的json转换成字典
var metadataObj = JArray.Parse(postMetadataJsonStr);
var dict = metadataObj.ToDictionary(x => (string)x["key"], x => (double)x["value"]);
Console.WriteLine(dict["geo_latitude"]);