我正在使用包含以下内容的json文件:
{
"objects":[
{"object": 1,
"data":{
"name": "object 1",
"priority_threshold": "6000",
"email_threshold": "2000"
}},
{"object": 3,
"data":{
"name": "object 3",
"priority_threshold": "5000",
"email_threshold": "2000"
}},
{"object": 5,
"data":{
"name": "object 5",
"priority_threshold": "5000",
"email_threshold": "1000"
}},
{"object": 6,
"data": {
"name": "object 6",
"priority_threshold": "4000",
"email_threshold": "2000"
}
}
]}
<。> .json文件是一个嵌入式文件,并以字符串形式返回。
然后从字符串我使用System.Web.Script.Serialization.JavaScriptSerializer反序列化对象来执行以下操作:
Dictionary<string, object> toConfigGraph = (Dictionary<string, object> toSerializer.DeserializeObject(psJsonString);
object[] toEventServiceConfig = (object[])toConfigGraph["objects"];
遇到的问题是我只想使用对象ID返回特定对象的数据,但我不确定最佳进程。我想实现一个Linq解决方案,但到目前为止,我甚至不确定这是否会起作用,因为toConfigGraph [“applications”]会根据json的结构返回一个对象数组。
任何建议都将不胜感激。
我宁愿不必遍历对象数组。
感谢。
答案 0 :(得分:2)
Dictionary<string, object> toObj = (Dictionary<string, object>)toEventServiceConfig.Where(o => Int32.Parse(((Dictionary<string, object>)o)["object"].ToString()) == 1).First<object>();
Dictionary<string, object> toData = (Dictionary<string, object>)toObj["data"];