解析动态JSON字符串

时间:2015-11-11 22:01:04

标签: c# json

我从服务器获取JSON响应,但JSON不是一种格式。所以显然没有必要创建类来反序列化它。所以,我尝试使用dynamic,但我无法阅读回复。

示例JSON字符串是

" {"hm_xytrict":"HM Tricky District - oop","hmSD":"HM Pool District"}"

请注意" hm_xytrict"和" hmSD"每次都会有所不同

我正在使用

dynamic jsonResponse = JsonConvert.DeserializeObject(responseString);

对于这种特定情况,我可以使用jsonResponse.hm_xytrictjsonResponse.hmSD,但由于它们也是动态的,因此如何在所有情况下阅读jsonResponse

谢谢你, 哈姆扎

2 个答案:

答案 0 :(得分:3)

因此,您可以使用JSON.NET api的不同部分来解析和提取对象中的数据:

var jObj = JObject.Parse(json);
foreach (JProperty element in jObj.Children())
{
    string propName = element.Name;
    var propVal = (string)element.Value;
}

答案 1 :(得分:0)

更有趣的是,您可以直接将JSON字符串解析为动态对象

string responseString = @"{""hm_xytrict"":""HM Tricky District - oop"",""hmSD"":""HM Pool District""}";

dynamic jsonResponse = JObject.Parse(responseString);
foreach (var item in jsonResponse)
{
    Console.WriteLine(item.Name);
    Console.WriteLine(item.Value);
}

在您的示例中将输出

hm_xytrict
HM Tricky District - oop
hmSD 
HM Pool District