JSON

Gson和Fastjson的使用

字号+ 作者:H5之家 来源:H5之家 2017-08-03 10:02 我要评论( )

技术交流学习或者有任何问题欢迎加群 编程技术交流群 : 154514123 Java技术交流群 : 6128790 标签: 转载自:JSON技术的调研报告 一、Google的Gson包的使用简单介绍。 Gson类:解析json的最基础的工具类 JsonParser类:解析器来解析JSON到JsonElements的解析

技术交流学习或者有任何问题欢迎加群

编程技术交流群 : 154514123       Java技术交流群 : 6128790  

Java

标签:                           

转载自:JSON技术的调研报告

一、Google的Gson包的使用简单介绍。

Gson类:解析json的最基础的工具类
JsonParser类:解析器来解析JSON到JsonElements的解析树
JsonElement类:一个类代表的JSON元素
JsonObject类:JSON对象类型
JsonArray类:JsonObject数组
TypeToken类:用于创建type,比方泛型List

(1)maven依赖

com.google.code.gson
gson
2.3.1

开源地址 https://github.com/google/gson

(2)基础转换类 public class Book { private String id; private String name; public Book() { super(); } public String getId() { return id; } (String id) { this.id = id; } public String getName() { return name; } (String name) { this.name = name; } } public class Student { private String name; private int age; private String sex; private String describe; private Set books; public Student() { super(); } public String getName() { return name; } (String name) { this.name = name; } () { return age; } (int age) { this.age = age; } public String getSex() { return sex; } (String sex) { this.sex = sex; } public Set getBooks() { return books; } (Set books) { this.books = books; } public String getDescribe() { return describe; } (String describe) { this.describe = describe; } } (3)bean转换json Gson gson = new Gson(); String json = gson.toJson(obj);

obj是对象

(4)json转换bean Gson gson = new Gson(); String json = ""; Book book = gson.fromJson(json, Book.class); (5)json转换复杂的bean,比方List。Set

将json转换成复杂类型的bean,须要使用TypeToken

String json = "idid";

//将json转换成List
List list = gson.fromJson(json,new TypeToken<LIST>() {}.getType());
//将json转换成Set
Set set = gson.fromJson(json,new TypeToken<SET>() {}.getType());

(6)通过json对象直接操作json以及一些json的工具 a)格式化Json String json = "idid"; Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonParser jp = new JsonParser(); JsonElement je = jp.parse(json); json = gson.toJson(je); b)推断字符串是否是json,通过捕捉的异常来推断是否是json String json = "idid"; boolean jsonFlag; try { new JsonParser().parse(str).getAsJsonObject(); jsonFlag = true; } catch (Exception e) { jsonFlag = false; } c)从json串中获取属性 String json = "{\"id\":\"1\",\"name\":\"Json技术\"}"; String propertyName = ‘id‘; String propertyValue = ""; try { JsonParser jsonParser = new JsonParser(); JsonElement element = jsonParser.parse(json); JsonObject jsonObj = element.getAsJsonObject(); propertyValue = jsonObj.get(propertyName).toString(); } catch (Exception e) { propertyValue = null; } d)除去json中的某个属性 String json = "{\"id\":\"1\",\"name\":\"Json技术\"}"; String propertyName = ‘id‘; JsonParser jsonParser = new JsonParser(); JsonElement element = jsonParser.parse(json); JsonObject jsonObj = element.getAsJsonObject(); jsonObj.remove(propertyName); json = jsonObj.toString(); e)向json中加入属性 String json = "{\"id\":\"1\",\"name\":\"Json技术\"}"; String propertyName = ‘desc‘; Object propertyValue = "json各种技术的调研"; JsonParser jsonParser = new JsonParser(); JsonElement element = jsonParser.parse(json); JsonObject jsonObj = element.getAsJsonObject(); jsonObj.addProperty(propertyName, new Gson().toJson(propertyValue)); json = jsonObj.toString(); f)改动json中的属性 String json = "{\"id\":\"1\",\"name\":\"Json技术\"}"; String propertyName = ‘name‘; Object propertyValue = "json各种技术的调研"; JsonParser jsonParser = new JsonParser(); JsonElement element = jsonParser.parse(json); JsonObject jsonObj = element.getAsJsonObject(); jsonObj.remove(propertyName); jsonObj.addProperty(propertyName, new Gson().toJson(propertyValue)); json = jsonObj.toString(); g)推断json中是否有属性 String json = "{\"id\":\"1\",\"name\":\"Json技术\"}"; String propertyName = ‘name‘; boolean isContains = false ; JsonParser jsonParser = new JsonParser(); JsonElement element = jsonParser.parse(json); JsonObject jsonObj = element.getAsJsonObject(); isContains = jsonObj.has(propertyName); h)json中日期格式的处理 GsonBuilder builder = new GsonBuilder(); builder.setDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Gson gson = builder.create();

然后使用gson对象进行json的处理,假设出现日期Date类的对象,就会依照设置的格式进行处理

i)json中对于Html的转义

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • FastJson 介绍

    FastJson 介绍

    2017-08-02 16:00

  • 【转】JMeter学习(三十五)使用jmeter来发送json

    【转】JMeter学习(三十五)使用jmeter来发送json

    2017-08-01 16:02

  • Gson读写JSON 数据

    Gson读写JSON 数据

    2017-07-31 09:00

  • [C++11版]Ubuntu下Json的使用

    [C++11版]Ubuntu下Json的使用

    2017-07-30 10:02

网友点评