使用Java读取JSON数据
----------------siwuxie095
JSON 官网:http://www.json.org/
在官网页面的下方,是
JSON 数据格式在各个语言中的实现方法和操作类库
找到
Java 语言,选择 google-gson (成熟,且操作简单,被大多数开发者所使用的)
google-gson 下载链接:https://github.com/google/gson
截止 2017/3/30 最新版本 gson-2.8.0 下载链接:
http://download.csdn.net/detail/siwuxie095/9799544
工程名:TestReadJSON
包名:com.siwuxie095.json
类名:ReadJSON.java
打开资源管理器,在工程 TestReadJSON 文件夹下,放入
一个 JSON 文件:test.json
test.json 的内容:

打开资源管理器,在工程 TestReadJSON 文件夹下,创建一个
文件夹:lib,在其中放入:gson-2.8.0.jar
工程结构目录如下:

选择
gson-2.8.0.jar,右键->Build Path->Add to Build Path
此时,工程结构目录一览:

代码:
|
package com.siwuxie095.json; import java.io.FileNotFoundException; import java.io.FileReader; 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; public class ReadJSON {
/** * 通过解析器将test.json转换成JsonObject * * @param args */ public static
//将 test.json 的数据转换成 JSON 对象 //需要创建一个解析器,可以用来解析字符串或输入流 JsonParser parser=new JsonParser();
try {
//创建一个JSON对象,接收parser解析后的返回值 //使用parse()方法,传入一个Reader对象,返回值是JsonElement类型 //因为要读取文件,所以传入一个FileReader //JsonObject是JsonElement的子类,所以需要强转 //有异常抛出,使用 try catch 捕获 JsonObject object=(JsonObject) parser.parse(new FileReader("test.json"));
//先将两个外部的属性输出 category 和 pop //先 get 到名称(键),返回的是 JsonElement,再 getAs 转换成什么类型的值 //依据 json 格式里的数据类型 System.out.println("category="+object.get("category").getAsString()); System.out.println("pop="+object.get("pop").getAsBoolean());
//接着读取test.json里的JSON数组,名称是languages(键) //创建一个JsonArray JsonArray array=object.get("languages").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("id="+subObject.get("id").getAsInt()); System.out.println("name="+subObject.get("name").getAsString()); System.out.println("ide="+subObject.get("ide").getAsString());
}
} catch (JsonIOException e) { e.printStackTrace(); } catch (JsonSyntaxException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } } |
运行一览:

【made by siwuxie095】
使用Java读取JSON数据的更多相关文章
- Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法
前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...
- iOS彩票项目--第七天,初次读取json数据、KVC转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签
一.初次读取json数据 二.KVC转模型技巧,这里的技巧主要解决的是字典中的key 与 模型中有的属性对应不起来的时候 的解决办法 <方法1> <方法2>运行时字典转模型,运 ...
- ajax读取json数据
首先建立json.txt文件 { "programmers": [ { "firstName": "Brett", "lastNa ...
- 在MVC中动态读取JSON数据创建表格
//使用getJSON // ("@Url.Action("GetAllUsers","User")" ,json文件的路径.也可以是 /M ...
- js读取json数据(php传值给js)
<?php $array =array('fds','fdsa','fdsafasd'); // json_encode($array); ?> <html> <hea ...
- 当向后台插入或读取JSON数据遇见回车时
今天在项目中发现.当插入或读取JSON数据时遇见回车符.返回JSON数据格式时会报错(firebug里体现为乱码),百度了一下发现JSON不支持字符串里存在回车! 解决的方法: 在向接口插入带json ...
- Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容
>>点击这里下载完整html源码<< 截图如下: 滚动鼠标中键读取Json数据分页显示网页内容,关键的Javascript如下: <script type="t ...
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
EF+LINQ事物处理 在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...
- Java读取Excel数据
Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 下图是excel文件的路径和文件名 下图是exce ...
随机推荐
- SQL Compare
http://pan.baidu.com/s/1jGIEEm6 来源:数据库同步工具: Red Gate Sql Compare
- hbase-0.20.6/bin/hbase-daemon.sh: Permission denied
部署hbase全分布式时,出现以下错误:主机的hbase启动了,但是从机的没启动[root@centos7- my.shells]# start-hbase.sh Java HotSpot(TM) - ...
- 16_游戏编程模式ServiceLocator 服务定位
####简单说,就是某个系统作为一个服务,对全局系统可见. Service Locator (服务定位) ``` //简单粗暴的代码, 使用声音系统 // Use a static class? Au ...
- MonoBehavior lifecycle
awake 只调用一次, awake在所有obj都初始化之后被调用. 用途: 初始化游戏状态 设置脚本间的引用 ### ExecuteInEditMode 编辑模式下 ``` 这个模式下,脚本编译,会 ...
- bzoj3163 Eden的新背包问题
多重背包,$q$ 次询问,每次问删一个物品之后花费 $x$ 能装多少物品 $n \leq 3000, x \leq 1000, q \leq 300000$ sol: 网上有很多假做法 正解应该是考虑 ...
- Linux命令学习(19):ping命令
版权声明 更新:2017-06-13博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的ping命令. ...
- server2012/win8 卸载.net framework 4.5后 无法进入系统桌面故障解决【转】
都重装过一次了,第二次被坑了,真的是痛苦的经历 只剩下的cmd什么命令都不能执行啊,powershell也执行不了呀[网上都是说powershell切换的] 故障:服务器装的是windows2012 ...
- 如果有多个集合的迭代处理情况【使用MAP】
在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了foreach功能,该功能比较强大,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内.它也允许你指 ...
- JSF在ui:include中传递参数到对应控制层
在JSF中使用ui:include方法可以引入一个页面到当前页面中,如果要向被包含的页面中传入参数,可以使用ui:param标签,这个标签类似于f:param,只不过一个用于页面,一个用于实际标签.示 ...
- Windows Server 2008 修改系统的SID
故事背景:用VMware搭建了几个操作系统相同的虚拟机.安装成功一台后,直接拷贝已经生成的VMDK文件来构建其它的虚拟机. 一般情况下,如果复制的各个虚拟机只是单独使用,并且这些虚拟机不加入到域(Ac ...