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

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

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.")