c# 获取JSON 转换 client_select 该怎么获取

.Net技术 码拜 9年前 (2015-02-12) 907次浏览 0个评论

javascript 传来
json = {“client_select”:{“Standard”:{“how_much_room”:1},”Family”:{“how_much_room”:2,”additional_chop_id_list” : [“2″,”3″]}},”check_in”:”2014-02-21″,”check_out”:”2014-02-23″,”discount_rate”:””,”total_all_room_price”:”183.05″}

c#

  var json = context.Request["json"];
                Dictionary<string, object> obj = jss.Deserialize<Dictionary<string, object>>(json);
                string check_in = obj["check_in"].ToString();
                string check_out = obj["check_out"].ToString();
                string discount_rate = obj["discount_rate"].ToString();
                double total_all_room_price_from_client = Convert.ToDouble(obj["total_all_room_price"]);

client_select 该怎么获取呢?
Dictionary<string, Handler_client_select> client_select = obj[“client_select”] as Dictionary<string, Handler_client_select>; 类似要这样

   public class Handler_client_select
            {
                public int how_much_room { get; set; }
                public ArrayList additional_chop_id_list { get; set; }            
            }

暂时用的方法是js 序列化多一次,然后c# 反序列化多一次
Dictionary<string, Handler_client_select> client_select = jss.Deserialize<Dictionary<string,Handler_client_select>>(obj[“client_select”].ToString());
高手请指导一下吧!万分感激 !

c# 获取JSON 转换 client_select 该怎么获取
一步一步序列化
比如先序列化成hashtable  var obj=(System.Collections.Hashtable)Newtonsoft.Json.JsonConvert.DeserializeObject(json, typeof(System.Collections.Hashtable));
然后 var clientSelectJson= obj[“client_select”].ToString();再进一步序列化成hashtable获取值
c# 获取JSON 转换 client_select 该怎么获取
10分
用LitJSON不行吗?
c# 获取JSON 转换 client_select 该怎么获取
序列化为json数组
c# 获取JSON 转换 client_select 该怎么获取
引用 2 楼 liuchaolin 的回复:

用LitJSON不行吗?

感谢,这个不错。
不过我不太会使用它,我能否也把它转换成ArrayList 或 字典呢 ?

  //var obj = {
         //       person: { list: [1, 2, 3] },
         //       animal: [{ name: "keatkeat" }, {name:"xinyao"}],   
         //   };
        string json = hd.Value;
        JsonData data = JsonMapper.ToObject(json);
        var keys = (data as IDictionary).Keys; 
        foreach (string attr in keys)
        {
            //有方法转换吗?   
            List<animal> animal_list = (List<animal>)data["animal"]; 
            Dictionary<string, ArrayList> person = (Dictionary<string, ArrayList>)data["person"];
        }
c# 获取JSON 转换 client_select 该怎么获取
使用newtonjson 很容易满足LZ的需求
c# 获取JSON 转换 client_select 该怎么获取
10分
http://www.cnblogs.com/usharei/archive/2012/04/24/2467578.html  附个入门教程

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c# 获取JSON 转换 client_select 该怎么获取
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!