Java中的JSON解析
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字符串的步骤:
- 引入Gson的jar包
- 在需要转换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对象的步骤:
- 引入Gson的jar包
- 在需要转换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字符串的步骤:
- 引入FastJson的jar包
- 在需要转换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字符串转换为对象
- 引入JAR包
- 在需要转换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格式的数据转换为数组格式
- 引入JAR包
- 在需要转换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解析相关推荐
- 码这么多字只为搞懂如何在Python和Java中使用JSON
目录 1 JSON是什么? 1.1 JSON是众多编程语言共同的"简谱" 1.2 JSON是一种高度结构化的文本 2 如何在Python中使用JSON 2.1 内置库json的编码 ...
- java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧
java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...
- 如何在Java中转义JSON字符串-Eclipse IDE技巧
在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. 这是测试和学习Java中解 ...
- java中使用json import_JAVA中使用JSON
JSON 语法是 JavaScript 对象表示语法的子集. 数据在键值对中: 键值对由冒号分隔: 数据由逗号分隔: 花括号保存对象: 方括号保存数组: 示例: { "people" ...
- Android JSONObject – Android中的JSON解析
Android JSONObject is used for JSON parsing in android apps. In this tutorial we'll discuss and impl ...
- Java中使用JSON数据传递
一.Java中使用JSON数据传递 pom依赖引入 <dependency><groupId>com.alibaba</groupId><artifactId ...
- java解析xml实例_在java中使用dom解析xml的示例分析
本篇文章介绍了,在java中使用dom解析xml的示例分析.需要的朋友参考下 dom是个功能强大的解析工具,适用于小文档 为什么这么说呢?因为它会把整篇xml文档装载进内存中,形成一颗文档对象树 总之 ...
- JAVA中利用DOM解析XML文档
JAVA中利用DOM解析XML文档 package org.sws.utils; import java.io.File;import java.io.IOException; import java ...
- 江在川上曰:js中的JSON解析和序列化
江在川上曰:js中的JSON解析和序列化 JSON解析和序列化 JSON是javascript的一个严格的子集,利用了javacript中的一些模式来表示结构化数据.他只是一种数据格式,并非一种编程语 ...
- Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决
Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决 参考文章: (1)Java中使用json时java.lan ...
最新文章
- HTML用a标签出现404,404.html
- LeetCode之Weekly Contest 90
- Android编译工具Freeline的使用
- 计算机组成原理(一)计算机系统概述
- C++中size_type类型详解
- php执行多个存储过程
- 如何避免重要需求遗漏?
- Sniff网络基础原理和软件实现技巧详解
- 栈(操作受限的线性表)---C语言版
- 陕西师范大学计算机专业录取,陕西师范大学计算机类专业2016年在湖北理科高考录取最低分数线...
- 如何才能写好代码,做到以下几点即可
- 原生 JavaScript 实现扫雷
- 抖音文案、声音、设计、视频、图片素材网站
- Latex(texlive)安装配置教程(详细)
- 不要再被误导了,64位X86 CPU是没有64位寻址能力的!
- vr全景图片制作方法
- npoi 将html导出word,使用NPOI将数据导出为word格式里的table
- 伍伦贡大学计算机科学,计算机技术(科学)专业
- 修改内核参数 dad_transmits
- StartlsBack 导致屏幕闪烁的解决方法