Json使用Linq生成了Object Graph查询?

时间:2011-03-01 16:48:15

标签: linq json serialization

我正在使用包含以下内容的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的结构返回一个对象数组。

任何建议都将不胜感激。

我宁愿不必遍历对象数组。

感谢。

1 个答案:

答案 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"];