Json сгенерировал запрос Object Graph, используя Linq? - PullRequest
1 голос
/ 01 марта 2011

Я работаю с файлом 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"];

Проблема, с которой я столкнулся, заключается в том, что я хочу вернуть данные только для определенного объекта, используя идентификатор объекта, но я не уверен относительно лучшего процесса.Я хотел бы реализовать решение Linq, но на данный момент я даже не уверен, сработает ли это, поскольку toConfigGraph ["application"] возвращает массив объектов на основе структуры json.

Любые предложения будут ценны.

Я бы предпочел НЕ выполнять итерацию по массиву объектов.

Спасибо.

1 Ответ

2 голосов
/ 01 марта 2011
        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"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...