码迷,mamicode.com
首页 > 编程语言 > 详细

Java从String开始解析JSON

时间:2019-10-06 09:31:55      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:比较   imp   中括号   baidu   链接   info   教程   中间   特殊   

菜鸟教程的 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 中的数据了。

Java从String开始解析JSON

标签:比较   imp   中括号   baidu   链接   info   教程   中间   特殊   

原文地址:https://www.cnblogs.com/lyw-hunnu/p/11626252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!