2014-02-20 2 views
1

У меня проблема с анализом json, и я надеюсь, что кто-то может помочь.Разбор JSON в выпуске C#

Вот ответ JSON я получаю от servcie

{ 

    "name":"UPDATE_QUEUE", 
    "args":[ 
     { 
      "message":[ 
       { 
        "service_id":1, 
        "entered":"01:00", 
        "polaziste":"Tibljaska cesta 11, Rijeka", 
        "phone_number":"0992173439", 
        "destinacija":"Zabica 1, Rijeka", 
        "order":1, 
        "passanger_count":1, 
        "order_arival":"01:00" 
       }, 
       { 
        "service_id":2, 
        "entered":"01:00", 
        "polaziste":"Cavle 15, Cavle", 
        "phone_number":"080", 
        "destinacija":"Centar 1, Matulji", 
        "order":1, 
        "passanger_count":3, 
        "order_arival":"01:00" 
       } 
      ] 
     } 
    ] 

} 

А вот мой класс для объекта JSON

class DispatchQueueItem 
    { 
     public RootObject RootObject { get; set; } 
    } 


    public class Message 
    { 
     public int service_id { get; set; } 
     public string entered { get; set; } 
     public string polaziste { get; set; } 
     public string phone_number { get; set; } 
     public string destinacija { get; set; } 
     public int order { get; set; } 
     public int passanger_count { get; set; } 
     public string order_arival { get; set; } 
    } 

    public class Arg 
    { 
     public List<Message> message { get; set; } 
    } 

    public class RootObject 
    { 
     public string name { get; set; } 
     public List<Arg> args { get; set; } 
    } 

И вот мой призыв

API.jsonObjects.DispatchQueueItem items 
= JsonConvert.DeserializeObject<API.jsonObjects.DispatchQueueItem>(data.MessageText); 

Я использую Newtonsoft JSON для C#. NET

Когда я пытаюсь позвонить items.RootObject.name, я ничего не получаю, даже не запускаю событие (например, messageBox.Show(items.RootObject.name)).

+0

Что такое '' API.jsonObjects.DispatchQueueItem'? Почему бы вам не десериализовать правильный тип 'JsonConvert.DeserializeObject (....)' –

ответ

2

Вы десериализируетесь не в тот тип. Вы должны позвонить

JsonConvert.DeserializeObject<API.jsonObjects.RootObject>(data.MessageText); 

RootObject класс совпадает с JSON, который вы десериализации.

+0

Отлично! Спасибо ! – user1972670