日期:2014-05-17  浏览次数:21108 次

像这样的json怎么反序列化?
我只会反序列化这种:{"ret":1,","type":"","desc":""}

像这种:{"status":0,"result":{"location":{"lng":107.49497344659,"lat":31.214198858945},"precise":0,"confidence":10,"level":"\u57ce\u5e02"}}


我觉得太高深了!!!大神们指教啊!!!


------解决方案--------------------
对象属性还是对象嘛:
假设你定义的顶层对象是:info

那就是
求ing就是:
info.reuslt.location.ing 


那C#也是类似定义的。
------解决方案--------------------
直接在前台使用JS脚本eval,将字符串转换为JSON对象,直接以对象方式访问就行了。

var json = eval(data);
var status= json.status;
var result= json.result;
var lng= result.result;

------解决方案--------------------
引用Newtonsoft.Json.dll,下载地址:http://download.csdn.net/detail/guwei4037/5853053
class Program
    {
        static void Main(string[] args)
        {
            string json = "{'status':0,'result':{'location':{'lng':107.49497344659,'lat':31.214198858945},'precise':0,'confidence':10,'level':'\u57ce\u5e02'}}";
            Data data = JsonConvert.DeserializeObject<Data>(json);
            Console.WriteLine(data.result.location.lat);//输出 31.214198858945
        }
    }

    public class Data
    {
        public int status { get; set; }
        public Result result { get; set; }
    }

    public class Result
    {
        public Location location { get; set; }
        public int precise { get; set; }
        public int confidence { get; set; }
        public string level { get; set; }
    }

    public class Location
    {
        public double lng { get; set; }
        public double lat { get; set; }
    }

------解决方案--------------------
擦 来晚了