Java与JSON

简介:
JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
做什么?
将Java中的对象 快速的转换为 JSON格式的字符串.
将JSON格式的字符串, 转换为Java的对象.

(一)Gson

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为将Java对象转换为JSON字符串,或将JSON字符串转换成Java对象。

Gson官网:Gson.
Gson源码地址:Google/Gson

1.1 将对象转换为JSON字符串

转换JSON字符串的步骤:

  1. 引入Gson的jar包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
    String json = new Gson().toJSON(要转换的对象);

案例:

     //创建Gson对象Gson gson = new Gson();//创建要转换的对象Book b = new Book(100, "格列佛游记", "格列佛旅游日志");//Gson对象调用toJson()将Book对象转换为JSON字符串String book = gson.toJson(b);System.out.println(book);//结果: {"id":100,"name":"格列夫游记","info":"格列佛旅游日志"}

1.2 将JSON字符串转换为对象

转换成Java对象的步骤:

  1. 引入Gson的jar包
  2. 在需要转换Java对象的位置, 编写如下代码:
    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:

     //创建Gson对象Gson g = new Gson();//转换 : {"id":100,"name":"格列佛游记","info":"格列佛旅游日志"}Book book = g.fromJson("{\"id\":100,\"name\":\"格列夫游记\",\"info\":\"格列佛旅游日志\"}", Book.class);System.out.println(book.getId());//运行结果: 100

案例(转成map集合对象):

     //1. 创建Gson对象Gson g = new Gson();//2. 转换: {"id":100,"name":"格列夫游记","info":"格列佛旅游日志","page":["锄禾日当午","汗滴禾下土","嘿嘿嘿嘿嘿"]}HashMap hashMap = g.fromJson("{\"id\":100,\"name\":\"格列夫游记\",\"info\":\"格列佛旅游日志\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"嘿嘿嘿嘿嘿\"]}", HashMap.class);List page = (List) hashMap.get("page");System.out.println(page.get(1));//运行结果: 汗滴禾下土

PS:以上JSON字符串中若有某个键值对的值为数组的形式,则该值会被转换为List集合对象

(二)FastJson

简介:FastJson.

将对象转换为JSON字符串

转换JSON字符串的步骤:

  1. 引入FastJson的jar包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
    String json=JSON.toJSONString(要转换的对象);
    案例:
     Book b = new Book(10086, "格列佛游记", "小人国, 巨人国, 人马島");//对象转换为JSON字符串String book = JSON.toJSONString(b);System.out.println(book);//运行结果: {"id":10086,"info":"小人国, 巨人国, 人马島","name":"格列佛游记"}

JSON字符串转换为对象

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

案例:

     //JSON字符串转换为对象 {"id":10086,"info":"小人国, 巨人国, 人马島","name":"格列佛游记"}Book b1 = (Book)JSON.parseObject("{\"id\":10086,\"info\":\"小人国, 巨人国, 人马島\",\"name\":\"格列佛游记\"}", Book.class);System.out.println(b1.getId());//运行结果为: 10086

JSON格式的数据转换为数组格式

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
    List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:

     //JSON格式的数据转换为数组格式 [{"name":"一二三"},{"age":"四五六"},{"number":"七八九"}]List<String> strings = JSON.parseArray("[{\"name\":\"一二三\"},{\"age\":\"四五六\"},{\"number\":\"七八九\"}]", String.class);System.out.println(strings.get(1));//运行结果为: {"age":"四五六"}

喜欢的小伙伴们三连走一波吧!!!

Java中的JSON解析相关推荐

  1. 码这么多字只为搞懂如何在Python和Java中使用JSON

    目录 1 JSON是什么? 1.1 JSON是众多编程语言共同的"简谱" 1.2 JSON是一种高度结构化的文本 2 如何在Python中使用JSON 2.1 内置库json的编码 ...

  2. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  3. 如何在Java中转义JSON字符串-Eclipse IDE技巧

    在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. 这是测试和学习Java中解 ...

  4. java中使用json import_JAVA中使用JSON

    JSON 语法是 JavaScript 对象表示语法的子集. 数据在键值对中: 键值对由冒号分隔: 数据由逗号分隔: 花括号保存对象: 方括号保存数组: 示例: { "people" ...

  5. Android JSONObject – Android中的JSON解析

    Android JSONObject is used for JSON parsing in android apps. In this tutorial we'll discuss and impl ...

  6. Java中使用JSON数据传递

    一.Java中使用JSON数据传递 pom依赖引入 <dependency><groupId>com.alibaba</groupId><artifactId ...

  7. java解析xml实例_在java中使用dom解析xml的示例分析

    本篇文章介绍了,在java中使用dom解析xml的示例分析.需要的朋友参考下 dom是个功能强大的解析工具,适用于小文档 为什么这么说呢?因为它会把整篇xml文档装载进内存中,形成一颗文档对象树 总之 ...

  8. JAVA中利用DOM解析XML文档

    JAVA中利用DOM解析XML文档 package org.sws.utils; import java.io.File;import java.io.IOException; import java ...

  9. 江在川上曰:js中的JSON解析和序列化

    江在川上曰:js中的JSON解析和序列化 JSON解析和序列化 JSON是javascript的一个严格的子集,利用了javacript中的一些模式来表示结构化数据.他只是一种数据格式,并非一种编程语 ...

  10. Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决

    Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决 参考文章: (1)Java中使用json时java.lan ...

最新文章

  1. HTML用a标签出现404,404.html
  2. LeetCode之Weekly Contest 90
  3. Android编译工具Freeline的使用
  4. 计算机组成原理(一)计算机系统概述
  5. C++中size_type类型详解
  6. php执行多个存储过程
  7. 如何避免重要需求遗漏?
  8. Sniff网络基础原理和软件实现技巧详解
  9. 栈(操作受限的线性表)---C语言版
  10. 陕西师范大学计算机专业录取,陕西师范大学计算机类专业2016年在湖北理科高考录取最低分数线...
  11. 如何才能写好代码,做到以下几点即可
  12. 原生 JavaScript 实现扫雷
  13. 抖音文案、声音、设计、视频、图片素材网站
  14. Latex(texlive)安装配置教程(详细)
  15. 不要再被误导了,64位X86 CPU是没有64位寻址能力的!
  16. vr全景图片制作方法
  17. npoi 将html导出word,使用NPOI将数据导出为word格式里的table
  18. 伍伦贡大学计算机科学,计算机技术(科学)专业
  19. 修改内核参数 dad_transmits
  20. StartlsBack 导致屏幕闪烁的解决方法

热门文章

  1. 单片机c语言自学视频教程下载,郭天祥 十天学会单片机和C语言编程视频教程
  2. Excel VBA视频教程20集+PPT课件 完整版
  3. 计算机网络之数据链路层协议总结
  4. SqlServer2005安装详解
  5. Oracle 数据库入门学习
  6. vissim4.3安装教程
  7. 计算机怎么连接佳能打印机驱动,佳能打印机怎么连接电脑
  8. 数据结构(C语言)基础入门
  9. Python深度学习基础(四)——损失函数
  10. matlab切片操作