java json的处理
maven依赖
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
读取json
class ReadJSON
{
public static void main(String[] args)
{
String jsonStr = "{ \"one\":\"one\", \"two\":[{ \"two_1_1\":2.11, \"two_1_2\":2.12}, { \"two_2_1\":\"2.21\" } ], \"three\":[\"abc\",false], \"four\":{\"four_1\":4.1, \"four_2\":4.2 } }";
// one:简单类型
// two:对象数组(最复杂)
// three:数组类型
// four:对象类型 jsonGoogle(jsonStr);
jsonAlibaba(jsonStr);
} // gosn读取处理json
public static void jsonGoogle(String jsonStr)
{
JsonParser parser = new JsonParser();
JsonObject jsonObj = (JsonObject) parser.parse(jsonStr); String one = jsonObj.get("one").getAsString();
System.out.println(one);// one JsonArray twoObjArray = jsonObj.get("two").getAsJsonArray();
System.out.println(twoObjArray);// [{"two_1_1":2.11,"two_1_2":2.12},{"two_2_1":"2.21"}]
JsonObject twoObj = (JsonObject) twoObjArray.get(0);
String two = twoObj.get("two_1_1").getAsString();// 可以当成string处理
System.out.println(two);// 2.11 JsonArray threeArray = jsonObj.get("three").getAsJsonArray();
String three_1 = threeArray.get(0).getAsString();
boolean three_2 = threeArray.get(1).getAsBoolean();
System.out.println(three_1 + three_2);// abcfalse JsonObject fourObj = jsonObj.get("four").getAsJsonObject();
double four_1 = fourObj.get("four_1").getAsDouble();
System.out.println(four_1);// 4.1
} // fastjson读取处理json
public static void jsonAlibaba(String jsonStr)
{
JSONObject jsonObj = JSON.parseObject(jsonStr); String one = jsonObj.getString("one");
System.out.println(one);// one JSONArray twoObjArray = jsonObj.getJSONArray("two");
System.out.println(twoObjArray);// [{"two_1_1":2.11,"two_1_2":2.12},{"two_2_1":"2.21"}]
JSONObject twoObj = twoObjArray.getJSONObject(1);
String two_2 = twoObj.getString("two_2_1");
System.out.println(two_2);// 2.21 JSONArray threeArray = jsonObj.getJSONArray("three");
String three_1 = threeArray.getString(0);
boolean three_2 = threeArray.getBoolean(1);
System.out.println(three_1 + three_2);// abcfalse JSONObject fourObj = jsonObj.getJSONObject("four");
String four_1 = fourObj.getString("four_1");
System.out.println(four_1);// 4.1
}
}
写Json
public class Person
{
private String name;
private int age;
private double salary;
private boolean hasBaby;
private List<String> babyNames;
// setter/getter/toString等
}
public class WriteJSON
{
public static void main(String[] args)
{
writeJsonGoogle();
writeJsonAlibaba();
} // gson写json
public static void writeJsonGoogle()
{
JsonObject jsonObj = new JsonObject(); jsonObj.addProperty("one", "oneStr");
jsonObj.addProperty("two", false); JsonObject threeObj = new JsonObject();
threeObj.addProperty("three", 3);
jsonObj.add("three", threeObj); JsonArray jsonArray = new JsonArray();
JsonObject four_1 = new JsonObject();
four_1.addProperty("four_1", 4.1);
JsonObject four_2 = new JsonObject();
four_2.addProperty("four_2", true);
jsonArray.add(four_1);
jsonArray.add(four_2);
jsonObj.add("four", jsonArray); System.out.println(jsonObj.toString());
// {"one":"oneStr","two":false,"three":{"three":3},"four":[{"four_1":4.1},{"four_2":true}]}
} // fastjson写json
public static void writeJsonAlibaba()
{
Map<String, Object> jsonMap = new TreeMap<String, Object>();
jsonMap.put("one", "oneStr");
jsonMap.put("two", false); Map<String, Object> threeObj = new HashMap<String, Object>();
threeObj.put("three_1", "3.1");
threeObj.put("three_2", 3.2);
jsonMap.put("three", threeObj); JSONObject jsonObj = new JSONObject(jsonMap);
List<String> babynames = new ArrayList<String>();
babynames.add("abc");
babynames.add("def");
Person person = new Person("gusi", 12, 7000.00, true, babynames);
jsonObj.put("four", person); jsonObj.put("five", 5); System.out.println(jsonObj.toJSONString());
// {"five":5,"four":{"age":12,"babyNames":["abc","def"],"hasBaby":true,"name":"gusi","salary":7000},"one":"oneStr","three":{"three_1":"3.1","three_2":3.2},"two":false}
}
}
对象类型和json的常用转换
public class Demo implements Serializable
{
String name;
int age;
boolean man; public Demo()
{
super();
} public Demo(String name, int age, boolean man)
{
super();
this.name = name;
this.age = age;
this.man = man;
} // setter/getter,千万不能忘了,不然fastjson不能设置值
@Override
public String toString()
{
return "Demo [name=" + name + ", age=" + age + ", man=" + man + "]";
} }
//gson
Demo demo1 = new Demo("a", 1, false);
String json1 = new Gson().toJson(demo1);// JavaBean到String
System.out.println(json1);
Demo demo2 = new Gson().fromJson(json1, Demo.class);// String到JavaBean
System.out.println(demo2);
JsonObject jsonObj1 = (JsonObject) new JsonParser().parse(json1);// String到jsonObject
System.out.println(jsonObj1);
String json2 = jsonObj1.toString();// jsonObject到String
System.out.println(json2); //fastjson
Demo demo3 = new Demo("b", 2, true);
String json3 = JSON.toJSONString(demo3);// JavaBean到String
System.out.println(json3);
Demo demo4 = JSON.parseObject(json3, Demo.class);// String到JavaBean
System.out.println(demo4);
JSONObject jsonObj2 = JSON.parseObject(json3);// String到jsonObject
System.out.println(jsonObj2);
String json4 = jsonObj2.toJSONString();// jsonObject到String
System.out.println(json4);
JSONObject jsonObj3 = (JSONObject) JSON.toJSON(demo3);// JavaBean到jsonObject
System.out.println(jsonObj3);
java json的处理的更多相关文章
- java json 的生成和解析 --json-lib
类(java json的解析和生成): import java.util.HashMap; import java.util.Map; import net.sf.json.JSONArray; im ...
- Java json设置时间格式,Jackson设置时间格式,json设置单引号
Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- java json和对象互相装换
java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper
- java json与map互相转换(二)
java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...
- java json与map互相转换(一)
java json与map互相转换(一) CreationTime--2018年7月16日 Author:Marydon 1.准备工作 所需jar包:json-20180130.jar impor ...
- Java JSON数据创建和读取
Java json数据创建 package com.JavaTest; import com.google.gson.JsonArray; import com.google.gson.JsonOb ...
- Java Json格式的字符串转变对象
Java Json格式的字符串转变对象: 方法还是比较多的: 学习:https://my.oschina.net/heweipo/blog/386808 其中的jsonlib说明:http://www ...
- Java json串生成及转bean
package com; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...
- java -json()
json-lib和org.json的使用几乎是相同的,我总结出的区别有两点: 两种包 1. List集合转换成json方法 List list = new ArrayList(); list.add( ...
随机推荐
- 使用my97datepicker控件实现日期范围选择
注:(2014-12-05内容修改:添加运行效果) 使用my97datepicker 控件,需要对日期的范围进行控制,本人自己写了一个js完成此功能,示例为当前日期到下一周周五之间的日期可选,其他日期 ...
- Ueditor和CKeditor 两款编辑器的使用与配置
一丶ueditor 百度编辑器 1.官方文档,演示,下载地址:http://ueditor.baidu.com/website/index.html 2.百度编辑器的好:Editor是由百度web前端 ...
- asp.net验证码及怎么获取里面的数值(整合)
一.ASP.Net的验证码的作用 对于一个预防攻击的web表单来讲,验证码通常是一个常见的措施.因为如果对于一些public区域的页面内容来讲,譬如一个登录表单,如果没有必要的安全措施,很可能遭到模拟 ...
- English - when用法
一.作为副词,它有以下的用法: 1. 作为疑问副词,引导特殊疑问句,意为“什么时候:何时”.如: ( 1 ) When will they come back?( 2 ) What time wil ...
- Android 一个抽奖应用的逆向破解全流程之加固自己应用
转自: <a href="http://www.pedant.cn/2014/07/22/crack-a-draw-app/">http://www.pedant.cn ...
- js命名空间的使用
js命名空间的使用: test.html 代码如下: <!DOCTYPE HTML><html lang="en-US"><head> & ...
- spoj 10606 Balanced Numbers 数位dp
题目链接 一个数称为平衡数, 满足他各个数位里面的数, 奇数出现偶数次, 偶数出现奇数次, 求一个范围内的平衡数个数. 用三进制压缩, 一个数没有出现用0表示, 出现奇数次用1表示, 出现偶数次用2表 ...
- The error indicates that IIS is in 32 bit mode, while this application is a 64 b it application and thus not compatible.
I was trying to install a new WSS v3 Sharepoint on a 64 bit Windows 2003 server today but the instal ...
- MySQL my.cnf 参数说明
MySQL 5.5.13 参数说明: [client] character-set-server = utf8 port = 3306 socket = /data/mysql/3306/my ...
- LINUX诞生
编辑 Linux[1] 是一类Unix计算机操作系统的统称.Linux操作系统也是自由软件和开放源代码发展中最著名的例子.在1991 年的十月,由一个名为 Linus Torvalds的年轻芬兰大学 ...