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串示例 [ ...
随机推荐
- hit2739
好题,回路的问题一般都要转化为度数来做若原图的基图不连通,或者存在某个点的入度或出度为0则无解.统计所有点的入度出度之差di对于di>0的点,加边(s,i,di,0):对于di<0的点,加 ...
- mvc路由问题
概述 使用MVC Routing可以不必将URL映射到网站中特定文件.通过添加Routing规则,使URL能够安装指定的规则发送HTTP请求,这种方式能够简洁.方便.有效.快速的实现对指定页面的访问或 ...
- 如何学习web开发环境搭建和脚手架
Web前端的学习路线 第一阶段: HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础: Js基础教程.js内置对象常用方法.常见DO ...
- Python爬链接
# -*- coding: utf-8 -*- """ Created on Wed Jan 11 17:21:54 2017 @author: PE-Monitor & ...
- POJ1330 Nearest Common Ancestors(最近公共祖先)(tarjin)
A - Nearest Common Ancestors Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld &am ...
- tomcat安装规范
创建用户 useradd -u 501 tomcat passwd tomcat tomcat安装 tar zxf apache-tomcat-8.5.5.tar.gz -C /usr/local/ ...
- 去掉Chrome手机版首屏的“推荐的文章”
百度可得很多类似的文章,然而都是失效的,,比如此文,本文演示所使用的Chrome版本为59. 百度所得的解决办法都是同一个,排版,截图都是一样的,害我浪费了不少力气. 第一,转载文章未标明文章出处: ...
- [BZOJ 4117] Weather Report
Link: BZOJ 4117 传送门 Solution: 第一次写$Huffman Tree$相关,发现就是个合并果子? 此题可以将每一种情况的概率和排列总数算出,接下来就是按照$Haffman T ...
- 【分块】【树状数组】bzoj3744 Gty的妹子序列
离散化,分块. 预处理出:ans[i][j] 第i块到第j块的逆序对数. f[i][j] 第1~i块中大于j的数的个数. g[i][j] 第1~j块中小于j的数的个数. 每次询问时对于整块部分可以O( ...
- 触摸事件onTouchListener
1.效果图: (1)MainAcivity.java package com.example.app3; import android.content.DialogInterface; import ...