Java从String开始解析JSON

Posted lyw-hunnu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java从String开始解析JSON相关的知识,希望对你有一定的参考价值。

菜鸟教程的 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的主要内容,如果未能解决你的问题,请参考以下文章

json数据解析出错应该怎么办?

JAVA代码解析String字符串(json格式的)

如何在PHP中解析json

JAVA代码解析String字符串(json格式的)

java包路径解析成json

java 解析json字符串