gson-2.2.api简单

 

使用gson的tojson和fromjson实现对象和json的转换

Gson gson = new Gson(); // Or use new GsonBuilder().create();
     MyType target = new MyType();
     String json = gson.toJson(target); // serializes target to Json
     MyType target2 = gson.fromJson(json, MyType.class); // deserializes json into target2

 

 Type listType = new TypeToken<List<String>>() {}.getType();
     List<String> target = new LinkedList<String>();
     target.add("blah");
     Gson gson = new Gson();
     String json = gson.toJson(target, listType);
     List<String> target2 = gson.fromJson(json, listType);

 

 使用GsonBuilder创建gson对象
      Gson gson = new GsonBuilder()
         .registerTypeAdapter(Id.class, new IdTypeAdapter())
         .enableComplexMapKeySerialization()
         .serializeNulls()
         .setDateFormat(DateFormat.LONG)
         .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
         .setPrettyPrinting()
         .setVersion(1.0)
         .create();
 
           Gson gson = new GsonBuilder()
       .register(Point.class, new MyPointTypeAdapter())
       .enableComplexMapKeySerialization()
       .create();

 

map对象转换成json对象

  Gson gson = new GsonBuilder()
       .register(Point.class, new MyPointTypeAdapter())
       .enableComplexMapKeySerialization()
       .create();

   Map<Point, String> original = new LinkedHashMap<Point, String>();
   original.put(new Point(5, 6), "a");
   original.put(new Point(8, 8), "b");
   System.out.println(gson.toJson(original, type));
 

    The above code prints this JSON object:

  {
     "(5,6)": "a",
     "(8,8)": "b"
   }


 map对象转化成jsonArray对象:

Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();Map<Point, String> original = new LinkedHashMap<Point, String>();original.put(new Point(5, 6), "a");original.put(new Point(8, 8), "b");System.out.println(gson.toJson(original, type));The JSON output would look as follows:
   [[{"x": 5,"y": 6},"a"],[{"x": 8,"y": 8},"b"]]


JsonParser

parse方法将json类型的字符串,或者reader对象或者JsonReader对象解析成为jsonElement对象

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户需求、己、竞争对手的关系

图一 图二 图三 如第一图所示&#xff1a;现在在市面上的产品基本上都可以归纳为这一方面&#xff0c; 如“用户需求”是网上购物的需求&#xff0c;以“己”是京东为例子&#xff0c;“己”的…

SharePoint 入门介绍

from&#xff1a;http://www.cnblogs.com/jianyus/archive/2013/01/11/2856963.html 前言&#xff1a;接触SharePoint两年有余&#xff0c;从一开始的小白&#xff0c;变成现在的菜鸟&#xff0c;一路走来&#xff0c;学到很多&#xff0c;现在&#xff0c;想把自己知道的东西&…

AJAX-服务器响应

服务器响应 如需获得来自服务器的响应&#xff0c;请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。 属性 描述 responseText 获得字符串形式的响应数据。 responseXML 获得 XML 形式的响应数据。 responseText 属性 如果来自服务器的响应并非 XML&#xff0c…

c#下不同命名空间的引用(一个project使用另外一个project的名称空间)

http://bbs.csdn.net/topics/300089064 两个命名空间在同一个项目中时&#xff0c;没有任何问题。 若两个命名空间不在同一个项目中&#xff0c;则变成两个程序集之间的互相引用。 程序集之间的引用无所谓循环不循环的问题。 但如果两个程序集要互相引用&#xff0c;并且两个…

数据结构比较型排序算法分析及选择

比较型算法分为五类&#xff1a; 1、插入排序&#xff1a;直接插入排序、折半插入排序、希尔排序&#xff1b; 2、选择排序&#xff1a;直接选择排序、堆排序&#xff1b; 3、交换排序&#xff1a;快速排序、冒泡排序&#xff1b; 4、归并排序&#xff1b; 5、基数排序&#xf…

onreadystatechange 事件

onreadystatechange 事件 当请求被发送到服务器时&#xff0c;我们需要执行一些基于响应的任务。 每当 readyState 改变时&#xff0c;就会触发 onreadystatechange 事件。 readyState 属性存有 XMLHttpRequest 的状态信息。 下面是 XMLHttpRequest 对象的三个重要的属性&#…

Frequent Pattern 挖掘之二(FP Growth算法)(转)

FP树构造 FP Growth算法利用了巧妙的数据结构&#xff0c;大大降低了Aproir挖掘算法的代价&#xff0c;他不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对。为了达到这样的效果&#xff0c;它采用了一种简洁的数据结构&#xff0c;叫做frequent-pattern tree(频繁…

C# 两个类之间传递数据

1、通过全局变量 2、通过构造函数传递参数 3、通过委托实现通过委托例子&#xff1a;WebForm1 向Class1传递参数值&#xff1a; // namespace WebApplication2{public partial class WebForm1 : System.Web.UI.Page{//step1.声明一个委托public delegate void DoSomethingEvent…

可行性研究课后题

题目: 为方便储户&#xff0c;某银行拟开发计算机储蓄管理系统。储户填写的存款单或取款单由银行柜台业务员键入系统&#xff0c;如果是存款&#xff0c;系统记录存款人姓名、住址、存款类型、存款日期、利息等信息&#xff0c;并印出存款单给储户;如果是取款&#xff0c;系统进…

jQuery语法

jQuery不是W3C标准&#xff01; jQuery使用CSS选择器来选取元素。 jQuery语法 一、jury语法是为HTML元素的选取编制的&#xff0c;可以对元素执行某些操作。 基础语法是&#xff1a;$(selector).action() .美元符号定义jQuery .选择符&#xff08;selector&#xff09;“查…

Sublime 解决目录显示为方块的问题

2019独角兽企业重金招聘Python工程师标准>>> 修改Perferences->Settings-User { "font_face": "Consolas Italic", #传说这个字体比较好看。 "font_size": 15, "ignored_packages": [ "Vintage" ], "dpi…

VS toolTip1控件的使用1

http://blog.csdn.net/Mr_Liyong/article/details/780141381、在工具栏找到“toolTip”控件后拖到窗体后&#xff0c;窗体下方会显示此控件则拖放成功。 2、单击此控件右键选择属性&#xff1a;开始 修改属性。 3、当添加一个TOOLTIP控件后&#xff0c;在WINFORM界面上所有的控…

python 代码片段9

#codingutf-8# 字符串指示符号 r表示raw u表示unicodemystringuthis is unicode!--by print mystring# raw表示告诉解释器不要转换字符串任何字符filerc:\temp\folder\robots.txt print file# 另一个实用raw的地方是正则表达式# 可以在内放任何的字符串&#xff0c;不需要转义&…

【TL】【编码】瞬间移动-百度之星初赛(Astar Round2B)1003-2016.05.22

瞬间移动 Accepts: 1018 Submissions: 3620Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description有一个无限大的矩形&#xff0c;初始时你在左上角&#xff08;即第一行第一列&#xff09;&#xff0c;每次你都可以选择一个…

蓝懿IOS委托模式代理模式

今天刘国斌老师讲了有关oc语言里的委托模式&#xff08;代理模式&#xff09;&#xff0c;通过了一个打地鼠的游戏讲解了委托模式的功能作用&#xff0c;之后连带讲解了协议的书写和使用。 打地鼠功能包括屏幕随机出现地鼠&#xff0c;点击消失&#xff0c;如果不点击5秒后自…

C#调用C++类(以COM组件的形式)

如果想用C#调用C/C写的函数&#xff0c;可以先将C/C的函数写成dll文件&#xff0c;由C#用DllImport的方式来调用&#xff0c;但是这种方法无法调用C写的类&#xff0c;如果想调用C类&#xff0c;可以先把C类封装成COM组件&#xff0c;再由C#来调用。方法如下&#xff08;以VS20…

Duplicate interface definition for class

在添加文件之后&#xff0c;报 Duplicate interface definition for class 原因是&#xff1a;重复添加文件 仔细检查检查

dom解析xml

为什么80%的码农都做不了架构师&#xff1f;>>> 转载自&#xff1a;http://www.cnblogs.com/shenliang123/archive/2012/05/11/2495252.html 使用eclipse需要手动导入crimson.jar包 org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单&#xff0c…

逃离北上广:你以为回到小城市就非常幸福了吗?

忘记在哪儿看的了。感觉不错&#xff0c;随手发出来。我博客也有更新&#xff0c;底下有留个人博客链接 在过去几年里。“逃离北上广”一直是一个热门短语。拿我自己来说&#xff0c;工作在上海&#xff0c;但又不是上海人。毕业后&#xff0c;就选择租房&#xff0c;首先就为这…

Redefinition of enumerator ios

添加文件之后 报 Redefinition of enumerator iOS 原因是&#xff1a;重复添加文件 仔细检查检查