Java从String开始解析JSON

匿名 (未验证) 提交于 2019-12-02 21:52:03

菜鸟教程的 JSON 教程链接:https://www.runoob.com/json/json-tutorial.html

一、JSON 格式简析。

{     "person_num": 1,     "person_info": [{         "body_parts": {             "nose": {                 "x": 96.34375,                 "y": 101.53125             },             "right_knee": {                 "x": 89.6875,                 "y": 314.53125             },          "location": {             "width": 91.40377044677734,             "height": 354.7197875976562         }      }]         }

  1. 对象在 {  } 大括号中

  2. 数组在 [  ] 中括号中

  3. key:value 值,中间用冒号隔开

二、将 String 类型的数据转换为 JSON 格式数据

  需要导入几个 jar 包,文件在以下链接中:

链接:https://pan.baidu.com/s/1SNMIPJal0-YKpsMqTnzjsg
提取码:ezmb
复制这段内容后打开百度网盘手机App,操作更方便哦

   需要导入的类如下:

import net.sf.json.JSONArray; import net.sf.json.JSONObject;

  String 类型数据转换为 JSON 格式数据 代码如下:

//result 是上方 JSON 数据的String 格式String result = "{"person_num": 1,"person_info": [{"body_parts": {"nose": {"x": 96.34375,"y": 101.53125},"right_knee": {"x": 89.6875,"y": 314.53125},"location": {"width": 91.40377044677734,"height": 354.7197875976562}}]}"JSONObject jsonObject = JSONObject.fromObject(result);//将String 类型数据转换为 JSON 格式数据 

 

 三、将 JSON 中的数据提取出来

  代码示例为上方提供的 JSON 格式数据(取出其中 "nose" 的数据)

   1. 取对象中的数组数据:("person_info" 对应的 JSON 值是数组类型)

JSONArray person_info = jsonObject.getJSONArray("person_info");

 

   2. 取数组中的对象:(取 person_info 中第一个数据,在上面的例子中 "person_info" 数组中有两个数据:"body_parts" 和 "location" )

JSONObject body_parts = person_info.getJSONObject(0);

 

  3. 一个对象中有多个对象:

    是可以直接利用第 1 个示例中的方法调用,但是这里比较特殊的地方在于:"body_parts" 刚从数组中得到数据,还要进行转化:

//由于 body_parts中还有JSONObject,因此还要将 body_parts取出来 body_parts = body_parts.getJSONObject("body_parts"); //得到鼻子的信息 JSONObject nose = body_parts.getJSONObject("nose");

 

       4. 得到 key-value值:(得到 "nose" 中的 x、y 值)

double nose_x = nose.getDouble("x"); double nose_y = nose.getDouble("y");

 

  后面就可以直接利用 JSON 中的数据了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!