我从服务器获取JSON响应,但JSON不是一种格式。所以显然没有必要创建类来反序列化它。所以,我尝试使用dynamic
,但我无法阅读回复。
示例JSON字符串是
" {"hm_xytrict":"HM Tricky District - oop","hmSD":"HM Pool District"}"
请注意" hm_xytrict"和" hmSD"每次都会有所不同
我正在使用
dynamic jsonResponse = JsonConvert.DeserializeObject(responseString);
对于这种特定情况,我可以使用jsonResponse.hm_xytrict
和jsonResponse.hmSD
,但由于它们也是动态的,因此如何在所有情况下阅读jsonResponse
。
谢谢你, 哈姆扎
答案 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