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的处理的更多相关文章

  1. java json 的生成和解析 --json-lib

    类(java json的解析和生成): import java.util.HashMap; import java.util.Map; import net.sf.json.JSONArray; im ...

  2. Java json设置时间格式,Jackson设置时间格式,json设置单引号

    Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...

  3. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  4. java json和对象互相装换

    java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper

  5. java json与map互相转换(二)

      java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...

  6. java json与map互相转换(一)

      java json与map互相转换(一) CreationTime--2018年7月16日 Author:Marydon 1.准备工作 所需jar包:json-20180130.jar impor ...

  7. Java JSON数据创建和读取

    Java  json数据创建 package com.JavaTest; import com.google.gson.JsonArray; import com.google.gson.JsonOb ...

  8. Java Json格式的字符串转变对象

    Java Json格式的字符串转变对象: 方法还是比较多的: 学习:https://my.oschina.net/heweipo/blog/386808 其中的jsonlib说明:http://www ...

  9. Java json串生成及转bean

      package com; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...

  10. java -json()

    json-lib和org.json的使用几乎是相同的,我总结出的区别有两点: 两种包 1. List集合转换成json方法 List list = new ArrayList(); list.add( ...

随机推荐

  1. 使用my97datepicker控件实现日期范围选择

    注:(2014-12-05内容修改:添加运行效果) 使用my97datepicker 控件,需要对日期的范围进行控制,本人自己写了一个js完成此功能,示例为当前日期到下一周周五之间的日期可选,其他日期 ...

  2. Ueditor和CKeditor 两款编辑器的使用与配置

    一丶ueditor 百度编辑器 1.官方文档,演示,下载地址:http://ueditor.baidu.com/website/index.html 2.百度编辑器的好:Editor是由百度web前端 ...

  3. asp.net验证码及怎么获取里面的数值(整合)

    一.ASP.Net的验证码的作用 对于一个预防攻击的web表单来讲,验证码通常是一个常见的措施.因为如果对于一些public区域的页面内容来讲,譬如一个登录表单,如果没有必要的安全措施,很可能遭到模拟 ...

  4. English - when用法

    一.作为副词,它有以下的用法:  1. 作为疑问副词,引导特殊疑问句,意为“什么时候:何时”.如: ( 1 ) When will they come back?( 2 ) What time wil ...

  5. Android 一个抽奖应用的逆向破解全流程之加固自己应用

    转自: <a href="http://www.pedant.cn/2014/07/22/crack-a-draw-app/">http://www.pedant.cn ...

  6. js命名空间的使用

    js命名空间的使用: test.html 代码如下: <!DOCTYPE HTML><html lang="en-US"><head>    & ...

  7. spoj 10606 Balanced Numbers 数位dp

    题目链接 一个数称为平衡数, 满足他各个数位里面的数, 奇数出现偶数次, 偶数出现奇数次, 求一个范围内的平衡数个数. 用三进制压缩, 一个数没有出现用0表示, 出现奇数次用1表示, 出现偶数次用2表 ...

  8. 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 ...

  9. MySQL my.cnf 参数说明

    MySQL 5.5.13 参数说明: [client] character-set-server = utf8 port    = 3306 socket  = /data/mysql/3306/my ...

  10. LINUX诞生

    编辑 Linux[1]  是一类Unix计算机操作系统的统称.Linux操作系统也是自由软件和开放源代码发展中最著名的例子.在1991 年的十月,由一个名为 Linus Torvalds的年轻芬兰大学 ...