http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3449|回复: 4

[学生提问] 这个json怎么解析,求助,求思路

[复制链接]
发表于 2015-1-31 22:34:26 | 显示全部楼层 |阅读模式
10金钱
{
        11: {
            n: '北京',
            1: {
                n: '东城'
            },
            2: {
                n: '西城'
            }
        },
        12: {
            n: '天津',
            1: {
                n: '和平'
            },
            2: {
                n: '河东'
            }
        },
        13: {
            n: '河北',
            1: {
                n: '石家庄',
                2: {
                    n: '长安区'
                },
                3: {
                    n: '桥东区'
                }
            }
           2: {
                n: '唐山',
                2: {
                    n: '路南区'
                },
                3: {
                    n: '路北区'
                }
           }
}



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-2-1 08:33:33 | 显示全部楼层
你要解析成什么样
回复

使用道具 举报

发表于 2015-2-1 11:00:37 | 显示全部楼层
自定义类,对应解析。JavaScriptSerializer
回复

使用道具 举报

 楼主| 发表于 2015-2-1 12:12:00 | 显示全部楼层
站长苏飞 发表于 2015-2-1 08:33
你要解析成什么样

城市:北京(11) 县区:东城(1) ,省份:河北(13) 城市:石家庄(1) 区县:长安区(2)       类似于这样的,主要把省份、地市、区县名称及对应的字典值取出来,这个好像无法定义成类,站长帮忙想想思路或算法哈,谢啦!
回复

使用道具 举报

 楼主| 发表于 2015-2-2 01:50:52 | 显示全部楼层
用了最土的办法搞定,感觉可以用递归算法,哎,基础薄,没思路~哪位高人给优化下,给个好点的办法哈
StreamReader json = new StreamReader(@"C:\qqcity.txt", Encoding.Default);
            JObject o = JObject.Parse(json.ReadToEnd());

            IEnumerable<JProperty> properties = o.Properties();
            foreach (JProperty item in properties)
            {
                Console.Write(" 省值:"+item.Name.ToString());
                string json1 = item.Value.ToString();
                JObject jo1 = JObject.Parse(json1);
                IEnumerable<JProperty> properties1 = jo1.Properties();
                foreach (JProperty item1 in properties1)
                {
                    if (item1.Name == "n")
                    {
                        Console.Write("省:" + item1.Value.ToString());
                    }
                    else
                    {
                        Console.Write(" 市值:" + item1.Name.ToString());
                        string json2 = item1.Value.ToString();
                        JObject jo2 = JObject.Parse(json2);
                        IEnumerable<JProperty> properties2 = jo2.Properties();
                        foreach (JProperty item2 in properties2)
                        {
                            if (item2.Name == "n")
                            {
                                Console.Write(" 市:" + item2.Value.ToString());
                            }
                            else
                            {
                                Console.Write(" 县值:" + item2.Name.ToString());
                                string json3 = item2.Value.ToString();
                                JObject jo3 = JObject.Parse(json3);
                                IEnumerable<JProperty> properties3 = jo3.Properties();
                                foreach (JProperty item3 in properties3)
                                {
                                    if (item3.Name == "n")
                                    {
                                        Console.Write(" 县:" + item3.Value.ToString());
                                    }
                                }
                            }
                        }
                    }
                }
                Console.WriteLine("");
            }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-16 22:36

© 2014-2021

快速回复 返回顶部 返回列表