使用JAVA读取json数据

1 篇文章 0 订阅

JSON 官网:http://www.json.org/

在官网页面的下方,是 JSON 数据格式在各个语言中的实现方法和操作类库

找到 Java 语言,选择 google-gson (成熟,且操作简单,被大多数开发者所使用的)

google-gson 下载链接:https://github.com/google/gson

截止 2017/3/30 最新版本 gson-2.8.0 下载链接:

https://download.csdn.net/download/qq_33857502/10843609

 

 

工程名:Yidaoboshi

包名:com.exocr.httpclient

类名:TestJson.java

   

测试json是博主用所做项目中图片智能识别获取到的,以下的是部分json截图

   

test.json 的内容:

工程结构目录如下:(选择 gson-2.8.0.jar,右键->Build Path->Add to Build Path即可实现下图效果)

代码:

package com.exocr.httpclient;

import com.google.gson.JsonArray;

import com.google.gson.JsonIOException;

import com.google.gson.JsonObject;

import com.google.gson.JsonParser;

import com.google.gson.JsonSyntaxException;

import java.io.FileNotFoundException;

import java.io.FileReader;

public class TestJson {
	public static void main(String[] args) {
		
		//将 test.json 的数据转换成 JSON 对象

		//需要创建一个解析器,可以用来解析字符串或输入流

		JsonParser parser=new JsonParser();
		
		try {
			 

			//创建一个JSON对象,接收parser解析后的返回值

			//使用parse()方法,传入一个Reader对象,返回值是JsonElement类型

			//因为要读取文件,所以传入一个FileReader

			//JsonObject是JsonElement的子类,所以需要强转

			//有异常抛出,使用 try catch 捕获
			//D:\test.json
			JsonObject object=(JsonObject) parser.parse(new FileReader("D:\\test.json"));


			//先将两个外部的属性输出 category 和 pop

			//先 get 到名称(键),返回的是 JsonElement,再 getAs 转换成什么类型的值

			//依据 json 格式里的数据类型
			System.out.println("error_code="+object.get("error_code").getAsInt());//错误代码
			System.out.println("description="+object.get("description").getAsString());//识别结果
			System.out.println("request_id="+object.get("request_id").getAsString());//request_id
			System.out.println("recognize_time="+object.get("recognize_time").getAsInt());//recognize_time
			System.out.println("available_count="+object.get("available_count").getAsInt());//available_count
	
			//接着读取test.json里的JSON数组,名称是languages(键)

			//创建一个JsonArray

			JsonArray array=object.get("result").getAsJsonArray();

			for (int i = 0; i < array.size(); i++) {

			//分隔线

			System.out.println("-----------------");

			//创建一个JsonObject,从array的下标获取,get() 返回JsonElement类型

			//这里不用强转,而用 getAsJsonObject() 进行转换

			JsonObject subObject=array.get(i).getAsJsonObject();

			System.out.println("words="+subObject.get("words").getAsString());

			}
		}
		catch(JsonIOException e){
			
			e.printStackTrace();
			
		}
		catch (JsonSyntaxException e) {

			e.printStackTrace();

			} 
		catch (FileNotFoundException e) {

			e.printStackTrace();

			}
	}
}

 

运行效果部分截图:(部分数据可能因为编码问题导致显示的时候乱码,自己处理)

该模块只是博主智能图片识别项目中的一个小模块,有需要的可以拿走哦!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满天心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值