QT中http协议和json数据的解析
- 1.http协议的原理
- 2.QT中http协议的通信流程
-
- [2.1 方法步骤](#2.1 方法步骤)
- 3.使用http协议(通过http下载图片和获取天气预报信息)
-
- [3.1 http下载网络上的图片(下载小文件)](#3.1 http下载网络上的图片(下载小文件))
-
- [3.1.1 示例代码](#3.1.1 示例代码)
- [3.1.2 现象](#3.1.2 现象)
- [3.2 获取网络上天气预报](#3.2 获取网络上天气预报)
-
- [3.2.1 免费的天气预报接口:](#3.2.1 免费的天气预报接口:)
- 4.json数据的构成
- 5.如何解析json数据
-
- [5.1 示例代码:(代码为获取网络上的天气预报)](#5.1 示例代码:(代码为获取网络上的天气预报))
- [5.2 现象](#5.2 现象)
- 附件:以下是天气预报json数据获取中使用的城市代码:
1.http协议的原理
本质上http是属于应用层的通信协议,底层使用的就是tcp协议
2.QT中http协议的通信流程
2.1 方法步骤
cpp
涉及到三个类:
QNetworkRequest --》 http请求
QNetworkAccessManager --》管理http请求(发送http请求)
QNetworkReply --》http应答
第一步:创建一个http请求
QNetworkRequest::QNetworkRequest(const QUrl &url = QUrl())
参数:url --》表示网址
QUrl::QUrl(const QString &url)
参数:url --》要访问的网址
第二步:创建QNetworkAccessManager的对象,该对象发送刚才的请求
//http中有两种常见的请求方法,分别是get/post
QNetworkReply *QNetworkAccessManager::get(const QNetworkRequest &request)
参数:request --》要发送的请求
[signal] void QNetworkAccessManager::finished(QNetworkReply *reply)
注意:如果请求成功,服务器(网址)会自动回复应答信息,程序员需要关联finished信号,在槽函数里面接收应答信息即可
第三步:在第二步定义的槽函数里面接收应答信息
QByteArray QNetworkReply::readAll()
图示:
3.使用http协议(通过http下载图片和获取天气预报信息)
https和http的区别
https使用了算法安全加密
3.1 http下载网络上的图片(下载小文件)
注意:在l浏览器中下载图片时,开源右键复制图片的地址,填入时需要把https改成http
cpp
直接一次性读取服务器返回的应答信息
QPixmap map;
map.loadFromData(buf是读取的应答信息);
3.1.1 示例代码
cpp
// widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrl>
#include <QNetworkReply>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_clicked();
void recvReply(QNetworkReply *reply);
private:
Ui::Widget *ui;
QNetworkAccessManager *httpManager;
};
#endif // WIDGET_H
// widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 初始化
httpManager = new QNetworkAccessManager(this);
// 主动关联finished信号
connect(httpManager, &QNetworkAccessManager::finished, this, &Widget::recvReply);
}
Widget::~Widget()
{
delete ui;
}
//下载图片
void Widget::on_pushButton_clicked()
{
// 获取输入框中输入的图片地址
QString picURL= ui->lineEdit->text();
// 依据图片地址构建一个QUrl对象
QUrl url(picURL);
// 创建请求对象
QNetworkRequest picRequest(url);
//发送请求
httpManager->get(picRequest);
}
void Widget::recvReply(QNetworkReply *reply)
{
//读取http服务器回复的应答信息
//由于我这个例子是来下载网络上的图片:因此服务器回复给我就是图片数据
QByteArray replyPicData = reply->readAll();
//在标签上显示图片
//方法1:依据图片的路径名来构造QPixmap类的对象
//方法2:依据图片的原始数据来构造QPixmap类的对象(目前例子使用)
QPixmap pixmap;
pixmap.loadFromData(replyPicData); // 依据图片的原始数据(二进制数据)来构造QPixmap类的对象
// pixmap.scaled(ui->label->width(), ui->label->height()); //调整图片大小
ui->label->setScaledContents(true); // 允许 QLabel 自动缩放内容
ui->label->setPixmap(pixmap); // 显示图像
}
3.1.2 现象

3.2 获取网络上天气预报
3.2.1 免费的天气预报接口:
网址:https://www.sojson.com/api/weather.html
打开网站后界面如下:
当需要获取某个城市天气数据json时候,需要传入一个城市代码编码作为入参,
地址: http://t.weather.itboy.net/api/weather/city/xxxxx ,其中xxxxx即为城市代码(城市代码见后面附件
)。
浏览器获取的天气数据:(也可勾选优质打印,输出为排版好的json格式)
或者通过json在线解析工具将其解析为json格式的数据:
json在线解析工具网址:https://www.jyshare.com/front-end/53/

4.json数据的构成
json数据:一种数据格式,在计算机前端开发中经常使用这个格式的数据,保存信息很方便
json数据只能由数组,对象,键值对三种构成
\quad 对象:用{}来表示,可以嵌套 {键值对}
\quad 数组:用[]来表示,数组里面只能存放相同类型的数据 [1,2,3] [{},{},{}] [键值对,键值对,键值对]
\quad 键值对:用键:值表示, 键只能是字符串,值可以是任意合法类型
5.如何解析json数据
cpp
json数据在解析之前,程序员必须要提前知道json数据的构成,否则无法解析
QT提供了如下几个类帮助解析json数据:
QJsonDocument --》把json数据标准化存储
QJsonObject --》对象
QJsonArray --》数组
QJsonValue --》值
QJsonParseError --》保存出错信息
解析json数据的一般思路:
第一步:把json数据标准化存储
[static] QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = Q_NULLPTR)
返回值:QJsonDocument对象存放标准化之后的json数据
参数:json --》要存储的原始json数据
error --》存放出错信息
第二步:严格按照你看到的json数据的结构一步步解析json数据(从整体到局部,一层层剥洋葱)
QJsonObject QJsonDocument::object() const //获取json数据中的对象
QJsonArray QJsonDocument::array() const //获取json数据中的数组
QJsonValue QJsonObject::value(const QString &key) const //通过键得到对应的值
QJsonValue QJsonArray::at(int i) const //获取数组中的下标元素
返回值:跟键对应的值
参数:key --》键
QJsonObject QJsonValue::toObject() const //把键值对中的值进行转换,转换成对象
总结:QJsonValue类中提供了大量的toxxxxx()方法,原因是键值对中的值可以是任意合法的数据类型,需要我们去转换
5.1 示例代码:(代码为获取网络上的天气预报)
cpp
// widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrl>
#include <QNetworkReply>
// json相关
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
#include <QJsonParseError>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_clicked();
void recvReply(QNetworkReply *reply);
private:
Ui::Widget *ui;
QNetworkAccessManager *httpManager;
};
#endif // WIDGET_H
// widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 初始化
httpManager = new QNetworkAccessManager(this);
// 主动关联finished信号,如果应答成功会回复应答消息,在槽函数中进行接收
connect(httpManager, &QNetworkAccessManager::finished, this, &Widget::recvReply);
}
Widget::~Widget()
{
delete ui;
}
//获取天气预报
void Widget::on_pushButton_clicked()
{
// 获取输入框中输入的天气预报地址
// 例如获取广州的天气:http://t.weather.itboy.net/api/weather/city/101280101
QString picURL= ui->lineEdit->text();
// 依据天气预报地址构建一个QUrl对象
QUrl url(picURL);
// 创建请求对象
QNetworkRequest picRequest(url);
//发送输入框中对应天气预报地址的请求
httpManager->get(picRequest);
}
void Widget::recvReply(QNetworkReply *reply)
{
//读取http服务器回复的应答信息
//由于现在获取天气预报信息,因此回复给我的应答信息replyPicData里面就是天气预报信息
QByteArray replyWeatherData = reply->readAll();
// 在文本编辑框中显示回复的天气预报信息
ui->textEdit->setText(replyWeatherData);
// 第一步:把json数据标准化存储,也就是解析为json数据
QJsonDocument doc = QJsonDocument::fromJson(replyWeatherData);
//第二步:严格按照看到的json数据的结构一步步解析json数据(从整体到局部)
//1.最外层是对象,获取这个对象里面的内容
QJsonObject obj1 = doc.object();
//2.获取obj1中键 data 对应的值
QJsonValue val1 = obj1.value("data");
// 3.val1是个对象,需要把QJsonValue val1转换成对象--》才可以调用QJsonObject类的方法
QJsonObject obj2 = val1.toObject();
// 4.把obj2里面的键forecast对应的值得到
QJsonValue val2 = obj2.value("forecast");
// 5.val2是个数组,把QJsonValue转换成数组--》才可以调用QJsonArray类的方法
QJsonArray array = val2.toArray();
// 6.得到数组下标为1的那个元素(其实也是个对象)
QJsonValue val3 = array.at(1);
// 7.val3是个对象,需要把QJsonValue转换成对象--》才可以调用QJsonObject类的方法
QJsonObject obj3 = val3.toObject();
// 8.把obj3里面的键high对应的值得到
QJsonValue val4 = obj3.value("high");
qDebug() << "high的值是:" << val4.toString();
}
5.2 现象
附件:以下是天气预报json数据获取中使用的城市代码:
bash
{
"城市代码": [{
"省": "北京",
"市": [{
"市名": "北京",
"编码": "101010100"
},
{
"市名": "朝阳",
"编码": "101010300"
},
{
"市名": "顺义",
"编码": "101010400"
},
{
"市名": "怀柔",
"编码": "101010500"
},
{
"市名": "通州",
"编码": "101010600"
},
{
"市名": "昌平",
"编码": "101010700"
},
{
"市名": "延庆",
"编码": "101010800"
},
{
"市名": "丰台",
"编码": "101010900"
},
{
"市名": "石景山",
"编码": "101011000"
},
{
"市名": "大兴",
"编码": "101011100"
},
{
"市名": "房山",
"编码": "101011200"
},
{
"市名": "密云",
"编码": "101011300"
},
{
"市名": "门头沟",
"编码": "101011400"
},
{
"市名": "平谷",
"编码": "101011500"
},
{
"市名": "八达岭",
"编码": "101011600"
},
{
"市名": "佛爷顶",
"编码": "101011700"
},
{
"市名": "汤河口",
"编码": "101011800"
},
{
"市名": "密云上甸子",
"编码": "101011900"
},
{
"市名": "斋堂",
"编码": "101012000"
},
{
"市名": "霞云岭",
"编码": "101012100"
},
{
"市名": "北京城区",
"编码": "101012200"
},
{
"市名": "海淀",
"编码": "101010200"
}
]
},
{
"省": "天津市",
"市": [{
"市名": "天津",
"编码": "101030100"
},
{
"市名": "宝坻",
"编码": "101030300"
},
{
"市名": "东丽",
"编码": "101030400"
},
{
"市名": "西青",
"编码": "101030500"
},
{
"市名": "北辰",
"编码": "101030600"
},
{
"市名": "蓟县",
"编码": "101031400"
},
{
"市名": "汉沽",
"编码": "101030800"
},
{
"市名": "静海",
"编码": "101030900"
},
{
"市名": "津南",
"编码": "101031000"
},
{
"市名": "塘沽",
"编码": "101031100"
},
{
"市名": "大港",
"编码": "101031200"
},
{
"市名": "武清",
"编码": "101030200"
},
{
"市名": "宁河",
"编码": "101030700"
}
]
},
{
"省": "上海",
"市": [{
"市名": "上海",
"编码": "101020100"
},
{
"市名": "宝山",
"编码": "101020300"
},
{
"市名": "嘉定",
"编码": "101020500"
},
{
"市名": "南汇",
"编码": "101020600"
},
{
"市名": "浦东",
"编码": "101021300"
},
{
"市名": "青浦",
"编码": "101020800"
},
{
"市名": "松江",
"编码": "101020900"
},
{
"市名": "奉贤",
"编码": "101021000"
},
{
"市名": "崇明",
"编码": "101021100"
},
{
"市名": "徐家汇",
"编码": "101021200"
},
{
"市名": "闵行",
"编码": "101020200"
},
{
"市名": "金山",
"编码": "101020700"
}
]
},
{
"省": "河北",
"市": [{
"市名": "石家庄",
"编码": "101090101"
},
{
"市名": "张家口",
"编码": "101090301"
},
{
"市名": "承德",
"编码": "101090402"
},
{
"市名": "唐山",
"编码": "101090501"
},
{
"市名": "秦皇岛",
"编码": "101091101"
},
{
"市名": "沧州",
"编码": "101090701"
},
{
"市名": "衡水",
"编码": "101090801"
},
{
"市名": "邢台",
"编码": "101090901"
},
{
"市名": "邯郸",
"编码": "101091001"
},
{
"市名": "保定",
"编码": "101090201"
},
{
"市名": "廊坊",
"编码": "101090601"
}
]
},
{
"省": "河南",
"市": [{
"市名": "郑州",
"编码": "101180101"
},
{
"市名": "新乡",
"编码": "101180301"
},
{
"市名": "许昌",
"编码": "101180401"
},
{
"市名": "平顶山",
"编码": "101180501"
},
{
"市名": "信阳",
"编码": "101180601"
},
{
"市名": "南阳",
"编码": "101180701"
},
{
"市名": "开封",
"编码": "101180801"
},
{
"市名": "洛阳",
"编码": "101180901"
},
{
"市名": "商丘",
"编码": "101181001"
},
{
"市名": "焦作",
"编码": "101181101"
},
{
"市名": "鹤壁",
"编码": "101181201"
},
{
"市名": "濮阳",
"编码": "101181301"
},
{
"市名": "周口",
"编码": "101181401"
},
{
"市名": "漯河",
"编码": "101181501"
},
{
"市名": "驻马店",
"编码": "101181601"
},
{
"市名": "三门峡",
"编码": "101181701"
},
{
"市名": "济源",
"编码": "101181801"
},
{
"市名": "安阳",
"编码": "101180201"
}
]
},
{
"省": "安徽",
"市": [{
"市名": "合肥",
"编码": "101220101"
},
{
"市名": "芜湖",
"编码": "101220301"
},
{
"市名": "淮南",
"编码": "101220401"
},
{
"市名": "马鞍山",
"编码": "101220501"
},
{
"市名": "安庆",
"编码": "101220601"
},
{
"市名": "宿州",
"编码": "101220701"
},
{
"市名": "阜阳",
"编码": "101220801"
},
{
"市名": "亳州",
"编码": "101220901"
},
{
"市名": "黄山",
"编码": "101221001"
},
{
"市名": "滁州",
"编码": "101221101"
},
{
"市名": "淮北",
"编码": "101221201"
},
{
"市名": "铜陵",
"编码": "101221301"
},
{
"市名": "宣城",
"编码": "101221401"
},
{
"市名": "六安",
"编码": "101221501"
},
{
"市名": "巢湖",
"编码": "101221601"
},
{
"市名": "池州",
"编码": "101221701"
},
{
"市名": "蚌埠",
"编码": "101220201"
}
]
},
{
"省": "浙江",
"市": [{
"市名": "杭州",
"编码": "101210101"
},
{
"市名": "舟山",
"编码": "101211101"
},
{
"市名": "湖州",
"编码": "101210201"
},
{
"市名": "嘉兴",
"编码": "101210301"
},
{
"市名": "金华",
"编码": "101210901"
},
{
"市名": "绍兴",
"编码": "101210501"
},
{
"市名": "台州",
"编码": "101210601"
},
{
"市名": "温州",
"编码": "101210701"
},
{
"市名": "丽水",
"编码": "101210801"
},
{
"市名": "衢州",
"编码": "101211001"
},
{
"市名": "宁波",
"编码": "101210401"
}
]
},
{
"省": "重庆",
"市": [{
"市名": "重庆",
"编码": "101040100"
},
{
"市名": "合川",
"编码": "101040300"
},
{
"市名": "南川",
"编码": "101040400"
},
{
"市名": "江津",
"编码": "101040500"
},
{
"市名": "万盛",
"编码": "101040600"
},
{
"市名": "渝北",
"编码": "101040700"
},
{
"市名": "北碚",
"编码": "101040800"
},
{
"市名": "巴南",
"编码": "101040900"
},
{
"市名": "长寿",
"编码": "101041000"
},
{
"市名": "黔江",
"编码": "101041100"
},
{
"市名": "万州天城",
"编码": "101041200"
},
{
"市名": "万州龙宝",
"编码": "101041300"
},
{
"市名": "涪陵",
"编码": "101041400"
},
{
"市名": "开县",
"编码": "101041500"
},
{
"市名": "城口",
"编码": "101041600"
},
{
"市名": "云阳",
"编码": "101041700"
},
{
"市名": "巫溪",
"编码": "101041800"
},
{
"市名": "奉节",
"编码": "101041900"
},
{
"市名": "巫山",
"编码": "101042000"
},
{
"市名": "潼南",
"编码": "101042100"
},
{
"市名": "垫江",
"编码": "101042200"
},
{
"市名": "梁平",
"编码": "101042300"
},
{
"市名": "忠县",
"编码": "101042400"
},
{
"市名": "石柱",
"编码": "101042500"
},
{
"市名": "大足",
"编码": "101042600"
},
{
"市名": "荣昌",
"编码": "101042700"
},
{
"市名": "铜梁",
"编码": "101042800"
},
{
"市名": "璧山",
"编码": "101042900"
},
{
"市名": "丰都",
"编码": "101043000"
},
{
"市名": "武隆",
"编码": "101043100"
},
{
"市名": "彭水",
"编码": "101043200"
},
{
"市名": "綦江",
"编码": "101043300"
},
{
"市名": "酉阳",
"编码": "101043400"
},
{
"市名": "秀山",
"编码": "101043600"
},
{
"市名": "沙坪坝",
"编码": "101043700"
},
{
"市名": "永川",
"编码": "101040200"
}
]
},
{
"省": "福建",
"市": [{
"市名": "福州",
"编码": "101230101"
},
{
"市名": "泉州",
"编码": "101230501"
},
{
"市名": "漳州",
"编码": "101230601"
},
{
"市名": "龙岩",
"编码": "101230701"
},
{
"市名": "晋江",
"编码": "101230509"
},
{
"市名": "南平",
"编码": "101230901"
},
{
"市名": "厦门",
"编码": "101230201"
},
{
"市名": "宁德",
"编码": "101230301"
},
{
"市名": "莆田",
"编码": "101230401"
},
{
"市名": "三明",
"编码": "101230801"
}
]
},
{
"省": "甘肃",
"市": [{
"市名": "兰州",
"编码": "101160101"
},
{
"市名": "平凉",
"编码": "101160301"
},
{
"市名": "庆阳",
"编码": "101160401"
},
{
"市名": "武威",
"编码": "101160501"
},
{
"市名": "金昌",
"编码": "101160601"
},
{
"市名": "嘉峪关",
"编码": "101161401"
},
{
"市名": "酒泉",
"编码": "101160801"
},
{
"市名": "天水",
"编码": "101160901"
},
{
"市名": "武都",
"编码": "101161001"
},
{
"市名": "临夏",
"编码": "101161101"
},
{
"市名": "合作",
"编码": "101161201"
},
{
"市名": "白银",
"编码": "101161301"
},
{
"市名": "定西",
"编码": "101160201"
},
{
"市名": "张掖",
"编码": "101160701"
}
]
},
{
"省": "广东",
"市": [{
"市名": "广州",
"编码": "101280101"
},
{
"市名": "惠州",
"编码": "101280301"
},
{
"市名": "梅州",
"编码": "101280401"
},
{
"市名": "汕头",
"编码": "101280501"
},
{
"市名": "深圳",
"编码": "101280601"
},
{
"市名": "珠海",
"编码": "101280701"
},
{
"市名": "佛山",
"编码": "101280800"
},
{
"市名": "肇庆",
"编码": "101280901"
},
{
"市名": "湛江",
"编码": "101281001"
},
{
"市名": "江门",
"编码": "101281101"
},
{
"市名": "河源",
"编码": "101281201"
},
{
"市名": "清远",
"编码": "101281301"
},
{
"市名": "云浮",
"编码": "101281401"
},
{
"市名": "潮州",
"编码": "101281501"
},
{
"市名": "东莞",
"编码": "101281601"
},
{
"市名": "中山",
"编码": "101281701"
},
{
"市名": "阳江",
"编码": "101281801"
},
{
"市名": "揭阳",
"编码": "101281901"
},
{
"市名": "茂名",
"编码": "101282001"
},
{
"市名": "汕尾",
"编码": "101282101"
},
{
"市名": "韶关",
"编码": "101280201"
}
]
},
{
"省": "广西",
"市": [{
"市名": "南宁",
"编码": "101300101"
},
{
"市名": "柳州",
"编码": "101300301"
},
{
"市名": "来宾",
"编码": "101300401"
},
{
"市名": "桂林",
"编码": "101300501"
},
{
"市名": "梧州",
"编码": "101300601"
},
{
"市名": "防城港",
"编码": "101301401"
},
{
"市名": "贵港",
"编码": "101300801"
},
{
"市名": "玉林",
"编码": "101300901"
},
{
"市名": "百色",
"编码": "101301001"
},
{
"市名": "钦州",
"编码": "101301101"
},
{
"市名": "河池",
"编码": "101301201"
},
{
"市名": "北海",
"编码": "101301301"
},
{
"市名": "崇左",
"编码": "101300201"
},
{
"市名": "贺州",
"编码": "101300701"
}
]
},
{
"省": "贵州",
"市": [{
"市名": "贵阳",
"编码": "101260101"
},
{
"市名": "安顺",
"编码": "101260301"
},
{
"市名": "都匀",
"编码": "101260401"
},
{
"市名": "兴义",
"编码": "101260906"
},
{
"市名": "铜仁",
"编码": "101260601"
},
{
"市名": "毕节",
"编码": "101260701"
},
{
"市名": "六盘水",
"编码": "101260801"
},
{
"市名": "遵义",
"编码": "101260201"
},
{
"市名": "凯里",
"编码": "101260501"
}
]
},
{
"省": "云南",
"市": [{
"市名": "昆明",
"编码": "101290101"
},
{
"市名": "红河",
"编码": "101290301"
},
{
"市名": "文山",
"编码": "101290601"
},
{
"市名": "玉溪",
"编码": "101290701"
},
{
"市名": "楚雄",
"编码": "101290801"
},
{
"市名": "普洱",
"编码": "101290901"
},
{
"市名": "昭通",
"编码": "101291001"
},
{
"市名": "临沧",
"编码": "101291101"
},
{
"市名": "怒江",
"编码": "101291201"
},
{
"市名": "香格里拉",
"编码": "101291301"
},
{
"市名": "丽江",
"编码": "101291401"
},
{
"市名": "德宏",
"编码": "101291501"
},
{
"市名": "景洪",
"编码": "101291601"
},
{
"市名": "大理",
"编码": "101290201"
},
{
"市名": "曲靖",
"编码": "101290401"
},
{
"市名": "保山",
"编码": "101290501"
}
]
},
{
"省": "内蒙古",
"市": [{
"市名": "呼和浩特",
"编码": "101080101"
},
{
"市名": "乌海",
"编码": "101080301"
},
{
"市名": "集宁",
"编码": "101080401"
},
{
"市名": "通辽",
"编码": "101080501"
},
{
"市名": "阿拉善左旗",
"编码": "101081201"
},
{
"市名": "鄂尔多斯",
"编码": "101080701"
},
{
"市名": "临河",
"编码": "101080801"
},
{
"市名": "锡林浩特",
"编码": "101080901"
},
{
"市名": "呼伦贝尔",
"编码": "101081000"
},
{
"市名": "乌兰浩特",
"编码": "101081101"
},
{
"市名": "包头",
"编码": "101080201"
},
{
"市名": "赤峰",
"编码": "101080601"
}
]
},
{
"省": "江西",
"市": [{
"市名": "南昌",
"编码": "101240101"
},
{
"市名": "上饶",
"编码": "101240301"
},
{
"市名": "抚州",
"编码": "101240401"
},
{
"市名": "宜春",
"编码": "101240501"
},
{
"市名": "鹰潭",
"编码": "101241101"
},
{
"市名": "赣州",
"编码": "101240701"
},
{
"市名": "景德镇",
"编码": "101240801"
},
{
"市名": "萍乡",
"编码": "101240901"
},
{
"市名": "新余",
"编码": "101241001"
},
{
"市名": "九江",
"编码": "101240201"
},
{
"市名": "吉安",
"编码": "101240601"
}
]
},
{
"省": "湖北",
"市": [{
"市名": "武汉",
"编码": "101200101"
},
{
"市名": "黄冈",
"编码": "101200501"
},
{
"市名": "荆州",
"编码": "101200801"
},
{
"市名": "宜昌",
"编码": "101200901"
},
{
"市名": "恩施",
"编码": "101201001"
},
{
"市名": "十堰",
"编码": "101201101"
},
{
"市名": "神农架",
"编码": "101201201"
},
{
"市名": "随州",
"编码": "101201301"
},
{
"市名": "荆门",
"编码": "101201401"
},
{
"市名": "天门",
"编码": "101201501"
},
{
"市名": "仙桃",
"编码": "101201601"
},
{
"市名": "潜江",
"编码": "101201701"
},
{
"市名": "襄樊",
"编码": "101200201"
},
{
"市名": "鄂州",
"编码": "101200301"
},
{
"市名": "孝感",
"编码": "101200401"
},
{
"市名": "黄石",
"编码": "101200601"
},
{
"市名": "咸宁",
"编码": "101200701"
}
]
},
{
"省": "四川",
"市": [{
"市名": "成都",
"编码": "101270101"
},
{
"市名": "自贡",
"编码": "101270301"
},
{
"市名": "绵阳",
"编码": "101270401"
},
{
"市名": "南充",
"编码": "101270501"
},
{
"市名": "达州",
"编码": "101270601"
},
{
"市名": "遂宁",
"编码": "101270701"
},
{
"市名": "广安",
"编码": "101270801"
},
{
"市名": "巴中",
"编码": "101270901"
},
{
"市名": "泸州",
"编码": "101271001"
},
{
"市名": "宜宾",
"编码": "101271101"
},
{
"市名": "内江",
"编码": "101271201"
},
{
"市名": "资阳",
"编码": "101271301"
},
{
"市名": "乐山",
"编码": "101271401"
},
{
"市名": "眉山",
"编码": "101271501"
},
{
"市名": "凉山",
"编码": "101271601"
},
{
"市名": "雅安",
"编码": "101271701"
},
{
"市名": "甘孜",
"编码": "101271801"
},
{
"市名": "阿坝",
"编码": "101271901"
},
{
"市名": "德阳",
"编码": "101272001"
},
{
"市名": "广元",
"编码": "101272101"
},
{
"市名": "攀枝花",
"编码": "101270201"
}
]
},
{
"省": "宁夏",
"市": [{
"市名": "银川",
"编码": "101170101"
},
{
"市名": "中卫",
"编码": "101170501"
},
{
"市名": "固原",
"编码": "101170401"
},
{
"市名": "石嘴山",
"编码": "101170201"
},
{
"市名": "吴忠",
"编码": "101170301"
}
]
},
{
"省": "青海省",
"市": [{
"市名": "西宁",
"编码": "101150101"
},
{
"市名": "黄南",
"编码": "101150301"
},
{
"市名": "海北",
"编码": "101150801"
},
{
"市名": "果洛",
"编码": "101150501"
},
{
"市名": "玉树",
"编码": "101150601"
},
{
"市名": "海西",
"编码": "101150701"
},
{
"市名": "海东",
"编码": "101150201"
},
{
"市名": "海南",
"编码": "101150401"
}
]
},
{
"省": "山东",
"市": [{
"市名": "济南",
"编码": "101120101"
},
{
"市名": "潍坊",
"编码": "101120601"
},
{
"市名": "临沂",
"编码": "101120901"
},
{
"市名": "菏泽",
"编码": "101121001"
},
{
"市名": "滨州",
"编码": "101121101"
},
{
"市名": "东营",
"编码": "101121201"
},
{
"市名": "威海",
"编码": "101121301"
},
{
"市名": "枣庄",
"编码": "101121401"
},
{
"市名": "日照",
"编码": "101121501"
},
{
"市名": "莱芜",
"编码": "101121601"
},
{
"市名": "聊城",
"编码": "101121701"
},
{
"市名": "青岛",
"编码": "101120201"
},
{
"市名": "淄博",
"编码": "101120301"
},
{
"市名": "德州",
"编码": "101120401"
},
{
"市名": "烟台",
"编码": "101120501"
},
{
"市名": "济宁",
"编码": "101120701"
},
{
"市名": "泰安",
"编码": "101120801"
}
]
},
{
"省": "陕西省",
"市": [{
"市名": "西安",
"编码": "101110101"
},
{
"市名": "延安",
"编码": "101110300"
},
{
"市名": "榆林",
"编码": "101110401"
},
{
"市名": "铜川",
"编码": "101111001"
},
{
"市名": "商洛",
"编码": "101110601"
},
{
"市名": "安康",
"编码": "101110701"
},
{
"市名": "汉中",
"编码": "101110801"
},
{
"市名": "宝鸡",
"编码": "101110901"
},
{
"市名": "咸阳",
"编码": "101110200"
},
{
"市名": "渭南",
"编码": "101110501"
}
]
},
{
"省": "山西",
"市": [{
"市名": "太原",
"编码": "101100101"
},
{
"市名": "临汾",
"编码": "101100701"
},
{
"市名": "运城",
"编码": "101100801"
},
{
"市名": "朔州",
"编码": "101100901"
},
{
"市名": "忻州",
"编码": "101101001"
},
{
"市名": "长治",
"编码": "101100501"
},
{
"市名": "大同",
"编码": "101100201"
},
{
"市名": "阳泉",
"编码": "101100301"
},
{
"市名": "晋中",
"编码": "101100401"
},
{
"市名": "晋城",
"编码": "101100601"
},
{
"市名": "吕梁",
"编码": "101101100"
}
]
},
{
"省": "新疆",
"市": [{
"市名": "乌鲁木齐",
"编码": "101130101"
},
{
"市名": "石河子",
"编码": "101130301"
},
{
"市名": "昌吉",
"编码": "101130401"
},
{
"市名": "吐鲁番",
"编码": "101130501"
},
{
"市名": "库尔勒",
"编码": "101130601"
},
{
"市名": "阿拉尔",
"编码": "101130701"
},
{
"市名": "阿克苏",
"编码": "101130801"
},
{
"市名": "喀什",
"编码": "101130901"
},
{
"市名": "伊宁",
"编码": "101131001"
},
{
"市名": "塔城",
"编码": "101131101"
},
{
"市名": "哈密",
"编码": "101131201"
},
{
"市名": "和田",
"编码": "101131301"
},
{
"市名": "阿勒泰",
"编码": "101131401"
},
{
"市名": "阿图什",
"编码": "101131501"
},
{
"市名": "博乐",
"编码": "101131601"
},
{
"市名": "克拉玛依",
"编码": "101130201"
}
]
},
{
"省": "西藏",
"市": [{
"市名": "拉萨",
"编码": "101140101"
},
{
"市名": "山南",
"编码": "101140301"
},
{
"市名": "阿里",
"编码": "101140701"
},
{
"市名": "昌都",
"编码": "101140501"
},
{
"市名": "那曲",
"编码": "101140601"
},
{
"市名": "日喀则",
"编码": "101140201"
},
{
"市名": "林芝",
"编码": "101140401"
}
]
},
{
"省": "台湾",
"市": [{
"市名": "台北县",
"编码": "101340101"
},
{
"市名": "高雄",
"编码": "101340201"
},
{
"市名": "台中",
"编码": "101340401"
}
]
},
{
"省": "海南省",
"市": [{
"市名": "海口",
"编码": "101310101"
},
{
"市名": "三亚",
"编码": "101310201"
},
{
"市名": "东方",
"编码": "101310202"
},
{
"市名": "临高",
"编码": "101310203"
},
{
"市名": "澄迈",
"编码": "101310204"
},
{
"市名": "儋州",
"编码": "101310205"
},
{
"市名": "昌江",
"编码": "101310206"
},
{
"市名": "白沙",
"编码": "101310207"
},
{
"市名": "琼中",
"编码": "101310208"
},
{
"市名": "定安",
"编码": "101310209"
},
{
"市名": "屯昌",
"编码": "101310210"
},
{
"市名": "琼海",
"编码": "101310211"
},
{
"市名": "文昌",
"编码": "101310212"
},
{
"市名": "保亭",
"编码": "101310214"
},
{
"市名": "万宁",
"编码": "101310215"
},
{
"市名": "陵水",
"编码": "101310216"
},
{
"市名": "西沙",
"编码": "101310217"
},
{
"市名": "南沙岛",
"编码": "101310220"
},
{
"市名": "乐东",
"编码": "101310221"
},
{
"市名": "五指山",
"编码": "101310222"
},
{
"市名": "琼山",
"编码": "101310102"
}
]
},
{
"省": "湖南",
"市": [{
"市名": "长沙",
"编码": "101250101"
},
{
"市名": "株洲",
"编码": "101250301"
},
{
"市名": "衡阳",
"编码": "101250401"
},
{
"市名": "郴州",
"编码": "101250501"
},
{
"市名": "常德",
"编码": "101250601"
},
{
"市名": "益阳",
"编码": "101250700"
},
{
"市名": "娄底",
"编码": "101250801"
},
{
"市名": "邵阳",
"编码": "101250901"
},
{
"市名": "岳阳",
"编码": "101251001"
},
{
"市名": "张家界",
"编码": "101251101"
},
{
"市名": "怀化",
"编码": "101251201"
},
{
"市名": "黔阳",
"编码": "101251301"
},
{
"市名": "永州",
"编码": "101251401"
},
{
"市名": "吉首",
"编码": "101251501"
},
{
"市名": "湘潭",
"编码": "101250201"
}
]
},
{
"省": "江苏",
"市": [{
"市名": "南京",
"编码": "101190101"
},
{
"市名": "镇江",
"编码": "101190301"
},
{
"市名": "苏州",
"编码": "101190401"
},
{
"市名": "南通",
"编码": "101190501"
},
{
"市名": "扬州",
"编码": "101190601"
},
{
"市名": "宿迁",
"编码": "101191301"
},
{
"市名": "徐州",
"编码": "101190801"
},
{
"市名": "淮安",
"编码": "101190901"
},
{
"市名": "连云港",
"编码": "101191001"
},
{
"市名": "常州",
"编码": "101191101"
},
{
"市名": "泰州",
"编码": "101191201"
},
{
"市名": "无锡",
"编码": "101190201"
},
{
"市名": "盐城",
"编码": "101190701"
}
]
},
{
"省": "黑龙江",
"市": [{
"市名": "哈尔滨",
"编码": "101050101"
},
{
"市名": "牡丹江",
"编码": "101050301"
},
{
"市名": "佳木斯",
"编码": "101050401"
},
{
"市名": "绥化",
"编码": "101050501"
},
{
"市名": "黑河",
"编码": "101050601"
},
{
"市名": "双鸭山",
"编码": "101051301"
},
{
"市名": "伊春",
"编码": "101050801"
},
{
"市名": "大庆",
"编码": "101050901"
},
{
"市名": "七台河",
"编码": "101051002"
},
{
"市名": "鸡西",
"编码": "101051101"
},
{
"市名": "鹤岗",
"编码": "101051201"
},
{
"市名": "齐齐哈尔",
"编码": "101050201"
},
{
"市名": "大兴安岭",
"编码": "101050701"
}
]
},
{
"省": "吉林",
"市": [{
"市名": "长春",
"编码": "101060101"
},
{
"市名": "延吉",
"编码": "101060301"
},
{
"市名": "四平",
"编码": "101060401"
},
{
"市名": "白山",
"编码": "101060901"
},
{
"市名": "白城",
"编码": "101060601"
},
{
"市名": "辽源",
"编码": "101060701"
},
{
"市名": "松原",
"编码": "101060801"
},
{
"市名": "吉林",
"编码": "101060201"
},
{
"市名": "通化",
"编码": "101060501"
}
]
},
{
"省": "辽宁",
"市": [{
"市名": "沈阳",
"编码": "101070101"
},
{
"市名": "鞍山",
"编码": "101070301"
},
{
"市名": "抚顺",
"编码": "101070401"
},
{
"市名": "本溪",
"编码": "101070501"
},
{
"市名": "丹东",
"编码": "101070601"
},
{
"市名": "葫芦岛",
"编码": "101071401"
},
{
"市名": "营口",
"编码": "101070801"
},
{
"市名": "阜新",
"编码": "101070901"
},
{
"市名": "辽阳",
"编码": "101071001"
},
{
"市名": "铁岭",
"编码": "101071101"
},
{
"市名": "朝阳",
"编码": "101071201"
},
{
"市名": "盘锦",
"编码": "101071301"
},
{
"市名": "大连",
"编码": "101070201"
},
{
"市名": "锦州",
"编码": "101070701"
}
]
}
]
}