JSON——Java中的使用
1. 构建JSON方法(数据——>JSON)
这里使用Maven构建项目
在pom.xml中添加如下依赖
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
1.1 创建JSONObject对象,利用put(key,value)赋值,toString() 打印出JSON格式
关键词:JSONObject对象,put(), toString()
public class JsonObjectSimple {
public static void main(String[] args) {
jSONObjectSimple();
}
private static void jSONObjectSimple() {
JSONObject xiaofeng=new JSONObject();
Object nullObj=null;//因为put()方法的原因,这里不能直接使用null,所以创建null的对象来跳过编译器的检查
try {
xiaofeng.put("name", "小峰");
xiaofeng.put("age", 22);
xiaofeng.put("birthday", "1999-11-22");
xiaofeng.put("school", "Qinghua University");
xiaofeng.put("major", new String[] {"sing","coding"});
xiaofeng.put("girlfriend", "true");
xiaofeng.put("car",nullObj); //不能直接使用null,需要创建null的对象来跳过编译器的检查
xiaofeng.put("comment","JSON里不能直接使用注释,需要添加时可通过此方式。。");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(xiaofeng.toString());
}
}
控制台输出后复制其到 http://www.jsoneditoronline.org/ 可查看 JSON 数据结构

1.2 通过 HashMap 构建
关键词:HashMap() , put() , toString() , JSONObject(xiaofeng)
private static void createJSONByMap() {
Map<String,Object> xiaofeng=new HashMap<String,Object>();
Object nullObj=null;
xiaofeng.put("name", "小峰");
xiaofeng.put("age", 22);
xiaofeng.put("birthday", "1999-11-22");
xiaofeng.put("school", "Qinghua University");
xiaofeng.put("major", new String[] {"sing","coding"});
xiaofeng.put("girlfriend", "true");
xiaofeng.put("car",nullObj); //不能直接使用null,需要创建null的对象来跳过编译器的检查
xiaofeng.put("comment","JSON里不能直接使用注释,需要添加时可通过此方式。。");
System.out.println(new JSONObject(xiaofeng).toString());
}
3. 使用 JavaBean 创建 JSON
关键词:JavaBean, setXxx(), JSONObject(xiaofeng)
首先创建 JavaBean 类Person(略), 之后创建。。。
private static void createJSONByBean() {
//创建Person对象,利用set()方法赋值,最后转为JSONObject对象输出
Person xiaofeng=new Person();
xiaofeng.setName("小峰");
xiaofeng.setAge(22.5);
xiaofeng.setGirlfriend(true);
xiaofeng.setMajor(new String[]{"唱歌","coding"});
System.out.println(new JSONObject(xiaofeng));
}
注意,在创建JavaBean时,由于JSON不支持date格式,所以日期格式需要设置为String类型,这也是JSON的缺陷。
2. 解析读取JSON数据(JSON——>数据)
xiaofeng.json
{
"birthday": "1999-11-22",
"girlfriend": "true",
"major": [
"sing",
"coding"
],
"school": "Qinghua University",
"car": null,
"name": "小峰",
"comment": "JSON里不能直接使用注释,需要添加时可通过此方式。。",
"age": 22
}
从文件中读取JSON
关键词:
ReadJSON.class.getResource("/xiaofeng.json").getFile() ,JSONArray,readFileToString(file)
public class ReadJSON {
public static void main(String[] args) throws IOException, JSONException {
//获取本文件路径下的json文件
File file=new File(ReadJSON.class.getResource("/xiaofeng.json").getFile());
//读取json文件内容
String content=FileUtils.readFileToString(file);
JSONObject jsonObject =new JSONObject(content);
System.out.println("姓名是 :"+jsonObject.getString("name"));
System.out.println("年龄是 :"+jsonObject.getDouble("age"));
System.out.println("有女朋友吗 ?"+jsonObject.getBoolean("girlfriend"));
//数组类型转换成JSONArray类型来解析,不能直接读取
JSONArray majorArray=jsonObject.getJSONArray("major");
for(int i=0;i<majorArray.length();i++){
String m=(String) majorArray.get(i);
System.out.println("专业——"+(i+1)+m);
}
}
}
控制台输出

为增加程序健壮性,可在JSON数据解析时加入 非空【isNull()】 判断
//判断 name 是否为空
if (!jsonObject.isNull("name")) {
System.out.println("姓名是 :" + jsonObject.getString("name"));
}
//反例,无输出
if (!jsonObject.isNull("nme")) {
System.out.println("姓名是 :" + jsonObject.getString("name"));
} System.out.println("年龄是 :" + jsonObject.getDouble("age"));
JSON——Java中的使用的更多相关文章
- json:java中前台向后台传对象数据
前台传入的是一个json类型的数据,如何在后台解析成想要的数据类型? 例如: 后台获取了前台一个string类型的数据@RequestParam(value = "forceUpgradeT ...
- Java中json的构造和解析
什么是 Json? JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机 ...
- JAVA中使用JSON进行数据传递
最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...
- Java中JSON的简单使用与前端解析
http://www.blogjava.net/qileilove/archive/2014/06/13/414694.html 一.JSON JSON(JavaScript Object Notat ...
- Java中json工具对比分析
Java中几个json工具分析 1, 环境 JDK1.6+IDE(IntelliJ IDEA)+windowsXP+GBK编码 2,分析对象 jackson1.8.2 http://jackson.c ...
- 在java代码中显示json字符串(怎么避免json字符串中双引号在java代码中显示)
String log = "eyJvcmRlckluZm8iOnsiaWQiOjEwNzQwNCwib3JkZXJJZCI6MjczNjQyMSwicHJvZHVjdENvZGUiOjQ1N ...
- JAVA中,JSON MAP LIST的相互转换
1 JSON包含对象和数组,对应于JAVA中的JSONObject,JSONArray 2 String 转JSON对象 JSONObject.fromObject("String" ...
- 转载:JAVA中使用JSON进行数据传递
转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...
- java 中关于json的使用方法
json在数据传输起了很大的作用,下面说说java中json的使用方法. 文章参考:http://www.codes51.com/article/detail_99574.html json串示例 [ ...
随机推荐
- C# T4使用
最近升级我们的框架到微服务了,而且是dotnetcore 2.0. 然后一个新的框架,最基本的Model和与数据库交互的Repository,我们都是要利用T4自动生成的. 首先这个是代码结构,在这个 ...
- 基于opencv的摄像头的标定
四个坐标系分别为:世界坐标系(Ow),摄像机坐标系(Oc),图像物理坐标系(O1,单位mm),图像像素坐标系(O,位于视野平面的左上角,单位pix). 空间某点P到其像点p的坐标转换过程主要是通过这四 ...
- 51nod 最长单增子序列(动态规划)
最长单增子序列 (LIS Longest Increasing Subsequence)给定一个数列,从中删掉任意若干项剩余的序列叫做它的一个子序列,求它的最长的子序列,满足子序列中的元素是单调递增的 ...
- Mysql数据库的安装及配置
本文转载自http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建 ...
- 【kruscal】【最小生成树】【并查集扩展】bzoj3714 [PA2014]Kuglarz
ORZ:http://www.cnblogs.com/zrts/p/bzoj3714.html #include<cstdio> #include<algorithm> usi ...
- Bootstrap-table使用footerFormatter做统计列
写在前面: 在做表格的时候,难免会碰到做统计的时候.由于在项目中涉及到做统计的功能比较简单,之后也就没有过多的去研究更复杂的,这里简单记录下. 这次就直接先上图:一个简单的例子 看到效果图还是很好的, ...
- FireDac Pooling
1.建立FDManager的ConnectionDef.并设置此Pooling为True. 2.建立Thread类进行多个FDConnection连接DB. 3.本列是oracle远程数据.如下图: ...
- 启用多处理器编译--加快VS2013编译
依次打开项目“属性“==>”配置属性“==>”C/C++(或其它语言)“==>”常规“,最后一项,多处理器编译选择是. 官方解释如下: /MP 选项在命令行上以减少总时间编译源文件. ...
- redis深入研究
Redis 设计思路学习与总结 https://cloud.tencent.com/developer/article/1004464 Redis 设计思路学习与总结 下半年利用空余时间研究和分析了部 ...
- go/golang init()方法的调用
go/golang main() init()方法的调用 u011156212 · 2015-10-20 13:00:05 · 9965 次点击 · 预计阅读时间 1 分钟 · 27分钟之前 开始浏览 ...