2014-02-20 27 views
1

解析json时出现问题,我希望有人能帮忙。在C#中解析JSON问题

这里是一个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 for 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