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( ...
随机推荐
- Java单态模式
Java的单态模式 Singletom 作用:保证在Java应用程序中,一个Java类只有一个实例存在:所以一般单态类会提供一个返回该类实例的方法.提供一个对对象的全局访问指针. 优点:节省内存,限制 ...
- bit-map牛刀小试:数组test[X]的值所有在区间[1, 8000]中, 现要输出test中反复的数。要求:1. 不能改变原数组; 2.时间复杂度为O(X);3.除test外空间不超过1KB
先来看看这个题目:数组test[X]的值所有在区间[1, 8000]中. 现要输出test中反复的数.要求:1. 不能改变原数组; 2.时间复杂度为O(X);3.除test外空间不超过1KB. 好, ...
- 金山卫士开源软件之旅(十) KSafeMainproject的分析 1
上一次看金山开源到如今已有一两个月了.期间看到QQ群里大家对它非常是热情. 近期有时间想看看金山的主界面projectKSafeMain,自己水平有限,总结的东西浅显.但还是愿意拿来与大家分享.希望对 ...
- 2.Visual Studio 2013中的默认快捷键
这篇大致是IDE的使用技巧,常用的也就那么几个. 我自己用的最多的是注释.取消注释.格式调整.运行测试.开始调试.断开调试.重新开始调试.删除行ctrl+L.保存.全部保存.打开资源管理器.搜索等几个 ...
- Windows下安装storm-0.9.1
Windows下安装storm-0.9.1的详细步骤如下: 1.确定已经正确安装JDK1.6或JDK1.7(具体安装步骤略) 2.安装Python2.7版本(测试storm-starter proje ...
- Labview学习之波形图表的历史数据
Labview学习之波形图表的历史数据 默认的情况下,波形图表显示100个点, 因为波形图表默认的缓冲区大小为1024,在默认的情况下如果修改图形图标属性中的标尺项,选中自动调整标尺,如图:2011- ...
- hadoop搭建杂记:Linux下ssh免密码登陆
关于ssh免密码登陆的问题 关于ssh免密码登陆的问题 linux下可以用ssh-keygen来生成公钥/私钥对 ①生成id_rsa和id_rsa.pub公钥/私钥对,自动在~/.ssh下生成文件(亦 ...
- table操作:边框-斑马线-多表头-焦点高亮-自动求和
一.操作table,本例子实现的功能: 1.table等宽边框2.table斑马线3.实现table多表头4.焦点所在行高亮5.自动计算总分 二.效果图 三.代码: <!DOCTYPE html ...
- 一周学会Mootools 1.4中文教程:(3)事件
今天我們講解一下mt的事件部分,对于事件的讲解主要包含三部分,分别是:绑定,移除,和触发,我们首先来看一个例子 //jquery的事件绑定方式$('a').click(function){ alert ...
- 星际SC地图制作中生成随机位置,也包括所有需要随机的效果
星际SC地图制作中生成随机位置,也包括所有需要随机的效果 利用单位 kakaru T 开头那个, kakaru是随机变化位置 注意kakaru的放置位置和占用格子大小,kakaru周围放上LOCATI ...