Разбор результатов JSON - C # - PullRequest
3 голосов
/ 02 мая 2011

Заранее спасибо за любую помощь!

ОК, поэтому я пытаюсь проанализировать результат Json с помощью API, и я ни в коем случае не являюсь экспертом Json, но возвращенный результат данных мне кажется немного сложным для восприятия (кажется, что возвращает 'header', а затем элементы ... см. пример необработанного результата). Я пытался разобрать это с помощью Json.NET http://james.newtonking.com/projects/json/help/ (который кажется довольно хорошим инструментом, просто еще недостаточно знаком с ним, или Json в этом отношении).

Что я ищу, может быть, кто-то с опытом использования этой конкретной DLL или рекомендации для лучшего / более легкого инструмента? (Я пытаюсь разобрать результаты, чтобы в идеале отобразить класс).

-Спасибо

Необработанный возвращаемый результат (Json)

{
"code": 0,
"message": "Successful",
"partials": {
    "_key": "partial",
    "0": {
        "datetime": "2011-03-08 16:22:51",
        "customer_id": "373263",
        "domain": "xyz.com ** deleted 2011-04-08 18:26:55 UTC**",
        "name": "Joe Customer",
        "phone": "1234567894",
        "email": "joecustomer@test.com",
        "offer": "",
        "pub_id": "",
        "sub_id": "",
        "data1": "",
        "data2": "",
        "data3": "",
        "custom1": "",
        "custom2": "",
        "custom3": "",
        "custom4": "",
        "custom5": "",
        "custom6": "",
        "custom7": "",
        "custom8": "" 
    },
    "1": {
        "datetime": "2011-03-08 16:43:11",
        "customer_id": "373296",
        "domain": "abc.com ** deleted 2011-04-08 18:26:55 UTC**",
        "name": "Jane Customer",
        "phone": "1234567891",
        "email": "janecustomer@test.com",
        "offer": "",
        "pub_id": "",
        "sub_id": "",
        "data1": "",
        "data2": "",
        "data3": "",
        "custom1": "",
        "custom2": "",
        "custom3": "",
        "custom4": "",
        "custom5": "",
        "custom6": "",
        "custom7": "",
        "custom8": "" 
    }
} 

}

Моя попытка

        HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();

        if (request.HaveResponse == true)
        {
            Stream responseStream = webResponse.GetResponseStream();
            StreamReader responseReader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
            string responseString = responseReader.ReadToEnd();

            JObject o = JObject.Parse(responseString);

            IList<JToken> results = o["partials"].Children().ToList();

            IList<bbParial> oResults = new List<bbPartial>();

            foreach (JToken t in results)
            {
                if (t.ToString().Contains("partial"))
                {
                    // Do nothing this is the header
                }
                else
                {
                    bbPartial bbp = JsonConvert.DeserializeObject<bbPartial>(t.ToString());
                }
            }
        }

Образец класса

public class bbpartial
{
    public string _key;
    public string datetime;
    public string customer_id;
    public string domain;
    public string name;
    public string phone;
    public string email;
    public string offer;
    public string pub_id;
    public string sub_id;
    public string data1;
    public string data2;
    public string data3;
    public string custom1;
    public string custom2;
    public string custom3;
    public string custom4;
    public string custom5;
    public string custom6;
    public string custom7;
    public string custom8;
}

1 Ответ

1 голос
/ 02 мая 2011
JObject jsonObj = JObject.Parse(jasonExample);

Customer customerOne = new Customer()
 {
   Name =(string)jsonObj.selectToken("partials[0].name")
 }

Это работает?Это полезно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...