json2select的全国城市数据

去年写过一个小插件,json2select 一直想要转换出配套的数据,但总有这样那样的问题之后,终于拖到了现在。
好在一切悲剧的日子已经过去了,新时代已经来临。猛击这里
三级联动,直辖市精确到城镇街道,一般城市到达区。强烈推荐。

这一切都要感谢 Asfman ,辛勤的工作,当然也少不了感谢搜狐白社会,是他们提供了这么好的数据,也要感谢我们伟大祖国,我们中华民族地大物博,省市也很多……

这套数据有100K多一点,但可以想办法压缩
把其中重复字符串替换掉,把街道替换成j,市替换成s,区替换成q,都可以减少文件体积。要用的时候先用正则替换后,再eval执行字符串就能得到数据了,可以达到68K左右
另外,保存成gb2312的话也可以减小体积。目前我手头的是52K左右大小了。但可能导致乱码,慎用。

进一步,如果通过词频分析,找出重复最多的前20个,替换的话,相信可以把体积维持在30K以下了。但手头没工具,最近也很忙,所以大家自己发挥吧。
我粗略压缩后的东西我就不单独发布了。

update:
在热心网友 Noker (虽然截止到目前位置似乎博客里还空着)的帮助下,已经把这套数据压缩到只有30K左右了。太棒了!
大家可以到 移步到这里下载 对应的数据,以及查看demo

update:
网友fantasy提出一个潜在的bug,由于这套数据中只有 标题 子元素 而没有对应的value值,所以后台无法获取到。为此需要修改一下源文件创建option的那一行

  1. <option value='"+sd.v+"'

改成

  1. <option value='"+(sd.v||sd.t)+"'

即可
或者重新下载1.0.1版即可

This entry was posted in jQuery. Bookmark the permalink.

21 Responses to json2select的全国城市数据

  1. 咖啡兔 says:

    小飞我拿走了,去用用
    呵呵

  2. Noker says:

    试验了下,分析字频后替换,gb2312的确能到30K以下,utf8的在40k左右,有时间我来压缩一个试试:)

    • Shawphy says:

      哈哈,多谢多谢,大家都会感谢你的~

      • Noker says:

        http://www.cnweb.org/down/areajson/

        我完成压缩了:)下载地址见上面这个URL。
        希望大家能用上,我自己机器上测试木有发现问题。

        压缩前文件大小:93.3KB(GB2312)  122KB(UTF-8)
        压缩后文件大小:28.9KB(GB2312)  37.8KB(UTF-8)
        压缩后与前比率:约33%       约31%

        如发现有问题,欢迎通过页面上的邮箱给我反馈,谢谢

        • Noker says:

          做前端做项目时间不短了,也有些积累,但都没怎么记录,感觉这样是不对的,所以最近才把网站架起来,以后好放点东西出来分享。
          上次你发给我的那个群,很想加入,但~~~人已满,啥时候清理成员啊,我好去占个位,也贡献下自己的经验,好和同道重任交流交流:)

  3. 阿呆 says:

    多谢啦

  4. 阿呆 says:

    <option value='"+sd.v+"'
    在哪里,下载到的是压缩的了啊,改了么?

    • Shawphy says:

      你好,是这样的,如果你是新下载的,可以看看版本号是不是1.0.1,如果是的话,说明已经是最新版了

  5. Pingback: json2select | 走走停停看看

  6. 李之澜 says:

    看看停停走走 话说,这个是干嘛的?

  7. cc says:

    如何把某个省的和某个市设为默认值

  8. Pingback: RIA Worlds » 全国省级城市2级联动js

  9. 花中笑 says:

    sohu白社会的数据有误,我给客户用了不满意,我重新生成了json数据

    • Shawphy says:

      唉,我最近用看到淘宝的也问题多多。反正国内这区县经常在换,拆拆合合也搞不定。多一个选择也总是好的。你可以直接把你做的发出来,我会在原文后面加上链接的。多谢啦~

  10. 花中笑 says:

    qq 346767073 联系我,我给你一分新的,csdn下载了,地区表数据 ,重新做的

  11. 花中笑 says:

    词频分析这个简单 用javascript packer 压缩算法,吧\w+改成 var WORDS = /[\u4e00-\u9fa5]/g;

    县|区|市|辖|族|山|治|自|城|州|阳|江|安|南|东|平|河|宁|西|新|海|旗|龙|川|兴|水|尔|武|昌|大|北|德|中|金|源|湖|台|临|永|林|长|溪|丰|石|和|克|云|清|都|口|陵|青|省|定|苗|化|华|巴|通|古|白|乌|拉|家|阿|彝|高|乐|泉|子|吉|特|兰|乡|广|沙|黄|门|庆|天|

    前几位的

  12. 花中笑 says:

    市辖|自治|族自|治县|彝族|回族|苗族|地区|瑶族|满族|藏族|山市|治州|土家|族苗|河区|蒙古|傣族|山区|科尔|市中|侗族|黎族|哈尼|朝阳|
    两个字的平率

  13. 花中笑 says:

    市辖区|族自治|自治县|市中区|

    三个字的

  14. q says:

    可以给个实质的例子看看怎样调取选择的数据吗?看不明白你写的

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>