JAVA中如何解析Json格式的字符串


我们写项目时有时候会接收一些json格式的数据,那么我们该如何解析它们呢。

首先我们应该了解什么是json:
json的语法规则:

  • json会通过{}来保存对象
  • json通过[]来保存数组
  • 数据会通过键值对的形式保存
  • 数据之间会用,隔开

例如

{"words_result":[{"words":"苏E05EV85"}],"log_id":1416028548941363325,"words_result_num":1}

这个就是一段json格式的字符串,当然,我们是要对结果进行解析,并不用知道这些具体代表什么意思。这个字符串总共有三组数据,第一组数据的值由[ ]包裹,可以得出它是一个数组格式,即使只有一条数据,后面的两条就是普通的键值对格式了。

想要解析字符串首先要下载一个依赖

	<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.28</version>
    </dependency>

我们需要用到依赖中的两个类:JSONObjectJSONArray
具体代码如下:

String result="{"words_result":[{"words":"苏E05EV85"}],"log_id":1416028548941363325,"words_result_num":1}";
JSONObject root = new JSONObject().parseObject(result);// 将json格式的字符串转换成json
String value = root.getString("log_id");//定义一个字符串,其值为根据json对象中的数据名解析出的其所对应的值
String value2 = root.getString("log_id");//重复上一步操作,得到相对应的值
//将结果打印输出
System.out.println(value);//打印输出
System.out.println(value2);//打印输出

我们得到的结果为

由于第一项为数组,所以需要用到JSONArray,实现如下

JSONArray Arr = root.getJSONArray("words_result");//根据json对象中数组的名字解析出其所对应的值
for (int i = 0; i < Arr.size(); i++) {
JSONObject dataBean = (JSONObject) Arr.get(i);//得到数组中对应下标对应的json对象
String plate = dataBean.getString("words");//根据json对象中的数据名解析出相应数据
System.out.println(plate);//打印输出
}

这样我们就可以拿到我们需要的结果了:

快来试试看吧!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM