读书人

求以次无KEY的JSON数据反序列化

发布时间: 2013-07-20 11:07:48 作者: rapoo

求以下无KEY的JSON数据反序列化
数据如下:

{
"code": 200,
"status": "OK",
"result": "{\"0130513113839835855\":{\"PassengerID\":\"3f4124f7-e68d-400a-823f-f9eb506856a7\",\"PassengerName\":\"吉吉\",\"TicketNumber\":\"\"}}"
}



我在做的时候,不知道对"0130513113839835855\" 怎么处理了 json 行业数据 C# asp.net
[解决办法]
{
"code": 200,
"status": "OK",
"result": "{\"0130513113839835855\":{\"PassengerID\":\"3f4124f7-e68d-400a-823f-f9eb506856a7\",\"PassengerName\":\"吉吉\",\"TicketNumber\":\"\"}}"
}

result=
{
"0130513113839835855":{"PassengerID":"3f4124f7-e68d-400a-823f-f9eb506856a7","PassengerName":"吉吉","TicketNumber":""}
}


result结果又是一个序列而已
[解决办法]
用你的数据写了一个demo
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Dynamic;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var s = @"
{
""code"": 200,
""status"": ""OK"",
""result"": ""{\""0130513113839835855\"":{\""PassengerID\"":\""3f4124f7-e68d-400a-823f-f9eb506856a7\"",\""PassengerName\"":\""吉吉\"",\""TicketNumber\"":\""\""}}""
}";
dynamic a = JsonConvert.DeserializeObject<ExpandoObject>(s);
dynamic b = JsonConvert.DeserializeObject<ExpandoObject>(a.result);
var d = (IDictionary<string, object>)b;
Console.WriteLine("a.status={0}", a.status);


dynamic c= d["0130513113839835855"];
Console.WriteLine("b.0130513113839835855.PassengerName={0}",c.PassengerName);
Console.ReadLine();
}
}
}


[解决办法]

public class Passenger
{
public string PassengerID { set; get; }
public string PassengerName { set; get; }
public string TicketNumber { set; get; }
}
public class a
{
public int code { set; get; }
public string status { set; get; }
public string result { set; get; }
}

string json = @"
{
""code"": 200,
""status"": ""OK"",
""result"": ""{\""0130513113839835855\"":{\""PassengerID\"":\""3f4124f7-e68d-400a-823f-f9eb506856a7\"",\""PassengerName\"":\""吉吉\"",\""TicketNumber\"":\""\""}}""
}";

var info= JsonConvert.DeserializeObject<a>(json);
var passenger = JsonConvert.DeserializeObject<Dictionary<string, Passenger>>(info.result);


var PassengerName = passenger.First().Value.PassengerName;



我自己测试没问题

读书人网 >asp.net

热点推荐