首先我们应该了解什么是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>
我们需要用到依赖中的两个类:JSONObject 与 JSONArray。
具体代码如下:
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);//打印输出
}
这样我们就可以拿到我们需要的结果了:
快来试试看吧!
原文:https://www.cnblogs.com/zy-3841/p/15023415.html