Json详解与使用
来源:互联网 发布:盘古数据股票 编辑:程序博客网 时间:2024/06/04 08:14
Json解析
json格式:
{名称:值,....,名称:值}对象
[值,....,值 ] 数组(值可以是字符串,数值,对象或者数组,可以嵌套)
图解:
优点:
1. 比xml格式简单,更易于阅读,轻量,更容易解析
2. json是更好的数据交换格式,xml是更好的文档交换格式
3. json更易于机器阅读,使用简单的客户端库或自身支持的javaScript
4. json可被浏览器客户端支持
5. 可支持各种通用的数据结构,记录,列表,树等
6. 21种语言支持可生成和解析json格式
缺点:
1. 不可扩展
2. 语义性较差,显示不如xml直观
json解析实例:
1.要解析的json文件
1 { 2 "retcode": 200, 3 "data": [ 4 { 5 "id": 10000, 6 "title": "新闻", 7 "type": 1, 8 "des":"这是一条有内涵的新闻1111" 9 },10 {11 "id": 10002,12 "title": "专题",13 "type": 10,14 "des":"这是一条有内涵的新闻222222" 15 },16 {17 "id": 10003,18 "title": "组图2",19 "type": 2,20 "des":"这是一条有内涵的新闻333333" 21 },22 {23 "id": 10006,24 "title": "组图4",25 "type": 2,26 "des":"这是一条有内涵的新闻333333" 27 },28 {29 "id": 10008,30 "title": "组图5",31 "type": 2,32 "des":"这是一条有内涵的新闻333333" 33 },34 {35 "id": 10003,36 "title": "组图6",37 "type": 2,38 "des":"这是一条有内涵的新闻ddddd33" 39 },40 {41 "id": 10003,42 "title": "组图7",43 "type": 2,44 "des":"这是一条有内涵的新闻3ssss33333" 45 },46 {47 "id": 10003,48 "title": "组图8",49 "type": 2,50 "des":"这是一条有内涵的新闻33dddd33333" 51 },52 {53 "id": 10004,54 "title": "互动",55 "type": 3,56 "des":"这是一条有内涵的新闻444444" 57 }58 ],59 "header":"http://10.0.2.2:8080/aa.jpg"60 }
2.文件解析(原生)
1 public static MyBean readJson(String s) { 2 //对象不要设置为空,一定要new出来 3 MyBean myBean = new MyBean(); 4 List<MyBean.DataBean> data1 = new ArrayList<>(); 5 try { 6 //读取json的根目录 7 JSONObject object = new JSONObject(s); 8 //解析retcode标签 9 int retcode = object.getInt("retcode");10 myBean.setRetcode(retcode);11 //由于data是一个数组类型,里面包含多个对象,所以需要用集合解析data12 JSONArray data =object.getJSONArray("data");13 //遍历,得到data里包含的每个对象14 for (int i=0;i<data.length();i++){15 //每个对象值被存放在dataBean中,所以需要new一个dataBean对象16 MyBean.DataBean dataBean = new MyBean.DataBean();17 //得到每一个data对象jsondata18 JSONObject jsonData = (JSONObject) data.get(i);19 //得到jsondata对象的每一个属性值20 int id = jsonData.getInt("id");21 、 //将属性值设置到dataBean22 dataBean.setId(id);23 String title = jsonData.getString("title");24 dataBean.setTitle(title);25 int type = jsonData.getInt("type");26 dataBean.setType(type);27 String des = jsonData.getString("des");28 dataBean.setDes(des);29 //将dataBean存放至集合中30 data1.add(dataBean);31 //设置myBean的data值32 myBean.setData(data1);33 Log.e("text101", "readJson:===== "+dataBean.toString());34 }35 //解析header标签36 String header = object.getString("header");37 myBean.setHeader(header);38 return myBean;39 } catch (JSONException e) {40 e.printStackTrace();41 return null;42 }43 }44 }
3.使用Gson解析 需要导包 compile 'com.google.code.gson:gson:2.2.4'
1 Gson gson = new Gson();2 //fromJson()方法用来实现将Json数据转换为相应的Java对象 (toJson()方法用来实现将java对象转换为相应的Json数据)3 final MyBean myBean = gson.fromJson(s, MyBean.class);4 List<MyBean.DataBean> list = myBean.getData();
阅读全文
0 0
- Json详解与使用
- 安卓中使用Gson解析json方法详解与使用例子
- json详解与介绍
- JSON数据使用详解
- json.parsearray使用详解
- json介绍与使用
- Json 数据格式与使用
- JSON详解与实例参考
- JSON详解与实例参考
- org.json.simple使用详解
- JS中Json 使用详解
- SpringMVC教程--json使用详解
- JSON数据 与 JSON数据的使用
- JSON.parse()与JSON.stringify()方法使用
- iOS- JSon和Xml解析,与服务器交互数据的解析详解与使用,各种解析方式详解
- JSON的学习与使用
- Json的介绍与使用
- JSON语法与使用简述
- POJ 1284
- 学习之路:0001
- 杭电1089,1090,1091,1092,1093,1094
- 数据结构-栈的链式存储
- php判断安卓还是苹果客户端
- Json详解与使用
- Openlayers4中风场的实现
- 判断两个链表是否相交,如果相交如何找到第一个相交结点。
- iOS 图片上传使用base64或者二进制流上传头像
- 使用Jacob将Word、Excel转html,pdf转html
- 9月英语--进阶成长
- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
- 剑指offer——65.矩阵中的路径
- 读《编译原理》第十章至终章 指令级并行性