我有这个JSON字符串,它是很长的字符串的一部分:
string UserConfigTemps =
{"prodStatus":{"uservalue":"1","ismodified":"false"},
"experimentation":{"uservalue":"2","ismodified":"true"}}
我将其转换为JSON对象
var configinterface = JObject.Parse(UserConfigTemps);
现在我的问题在这里,我想像这样获得ismodified
的值
foreach(var temps in configinterface )
{
if(configinterface[temps].ismodified) // do somthing
}
我不想写configinterface[prodStatus].ismodified
,因为它会很长。
答案 0 :(得分:0)
这是我的选择
string UserConfigTemps =
{"prodStatus":{"uservalue":"1","ismodified":"false"},
"experimentation":{"uservalue":"2","ismodified":"true"}};
var ConfigInterface = JObject.Parse(UserConfigTemps);
Dictionary<string, Object> jsonObj = JsonConvert.DeserializeObject<Dictionary<string, Object>>(UserConfigTemps);
foreach (var item in jsonObj)
{
if(configinterface[item.Key]["ismodified"].ToString()=="true");
}
答案 1 :(得分:0)
最简单的方法是遍历结果JObject
string jsonString = "your json string";
JObject o = JObject.Parse(jsonString);
foreach (var p in o) {
if (p.Value.Value<bool>("ismodified")) {
//do something
}
}
有关详细信息,请参见Json.NET的文档
编辑
也许您仍然应该定义一个自定义类
class Config {
public string uservalue {get;set;}
public bool ismodified {get;set}
}
var c = JsonConvert.DeserializeObject<Dictionary<string, Config>>(jsonString);
foreach (var x in c) {
if (x.Value.ismodified) {
}
}