当前位置: 代码迷 >> ASP.NET >> 解析,求结果,大神。该如何解决
  详细解决方案

解析,求结果,大神。该如何解决

热度:9814   发布时间:2013-02-25 00:00:00.0
解析,急求结果,大神。
{"sign":1,"data":{"12400000":{"role_id":12400000,"role_name":"s1.\u8863\u53ca\u6cab","role_level":2}
,"12400001":{"role_id":12400001,"role_name":"s2.\u8863\u53ca\u6cab","role_level":2}}}

我想用C#得到sign的1,role_id:12400000和role_name的s1 ,这个的时候要先循环如果我传来的值比如:s2就把role_name对应的s2.\u8863\u53ca\u6cab的点前面的s2取出来,得到这个里面的role_id的值

------解决方案--------------------------------------------------------
foreach
------解决方案--------------------------------------------------------
你可以利用JSON解析类,将你传来的JSON格式数据解析成对应的类,然后通过访问类的属性来得到其值

http://www.cnblogs.com/xfrog/archive/2010/04/07/1706754
------解决方案--------------------------------------------------------
先把你的生成这段json的代码贴出来看看
------解决方案--------------------------------------------------------
晕 这段JSON怎么来的 形成的过程 不是要结果
------解决方案--------------------------------------------------------
你自己先建立一个结构,把这代码用jss或者letJSON反序列化下就好了
------解决方案--------------------------------------------------------
问接口商要
------解决方案--------------------------------------------------------
你去下一个json的C#反序列化的例子,一看就懂了。如果你不去看他是怎么序列化的很那去反序列化
------解决方案--------------------------------------------------------
http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340

C# code
 JavaScriptSerializer jss = new JavaScriptSerializer();
------解决方案--------------------------------------------------------
C# code
 public static void Main()        {            string json = "{\"sign\":1,\"data\":"+                            "{\"12400000\":{\"role_id\":12400000,\"role_name\":\"s1.\u8863\u53ca\u6cab\",\"role_level\":2}" +                            ",\"12400001\":{\"role_id\":12400001,\"role_name\":\"s2.\u8863\u53ca\u6cab\",\"role_level\":2}"+                            ",\"12400002\":{\"role_id\":12400000,\"role_name\":\"s1.\u8863\u53ca\u6cab\",\"role_level\":2}}}";            var o = JObject.Parse(json);            foreach (JToken child in o["data"].Children())            {                foreach (JToken grandChild in child)                {                    if (grandChild["role_name"].ToString().StartsWith("s2."))                    {                        Console.WriteLine(grandChild["role_id"].ToString());                    }                                        }            }            Console.ReadLine();        }
------解决方案--------------------------------------------------------
sorry,忘了还要判断12400001

C# code
 public static void Main()        {            string json = "{\"sign\":1,\"data\":"+                            "{\"12400000\":{\"role_id\":12400000,\"role_name\":\"s1.\u8863\u53ca\u6cab\",\"role_level\":2}" +                            ",\"12400001\":{\"role_id\":12400001,\"role_name\":\"s2.\u8863\u53ca\u6cab\",\"role_level\":2}"+                            ",\"12400002\":{\"role_id\":12400000,\"role_name\":\"s1.\u8863\u53ca\u6cab\",\"role_level\":2}}}";            var o = JObject.Parse(json);            foreach (JToken child in o["data"].Children())            {                var property = child as JProperty;                if (property.Name.Equals("12400001"))                {                    foreach (JToken grandChild in child)                    {                        if (grandChild["role_name"].ToString().StartsWith("s2."))                        {                            Console.WriteLine(grandChild["role_id"].ToString());                        }                    }                }            }            Console.ReadLine();        }
  相关解决方案