- 前言
- 一、JSON的格式
- 1、对象格式
- 2、JSON的文本格式
- 3、数组格式
- 4、综合案例
- 二、Gson
- 1、实现对象和JSON字符串的转换
- 2、实现JSON字符串和对象的转换
- 3、实现JSON字符串和Map集合的转换
- 三、fastjason
- 1、实现对象和JSON字符串的转换
- 2、实现JSON字符串和对象的转换
- 3、实现数组转换为String类型的List集合
- 四、 总结
前言
简介:
JSON: Javascript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
提示:以下是本篇文章正文内容,下面案例可供参考
一、JSON的格式 1、对象格式首先简单的描述一下JAVA中的对象格式:
//一本书书名简介 javaclass Book{ private String name; private String info; get/set... } //案例: Book b = new Book(); b.setName(“金苹果”); b.setInfo(“种苹果”); ...
2、JSON的文本格式
接下来描述一下JSON的文本格式:
一个对象, 由一个大括号表示.。
括号中描述对象的属性 ,通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对。)
格式:键与值之间使用冒号(:)连接, 多个键值对之间使用逗号分隔,键值对的键应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解析) 键值对的值,,可以是JS中的任意类型的数据。
代码如下(示例):
{ "name":"金苹果", "info":"种苹果" }
3、数组格式
代码如下(示例):
//在JSON格式中可以与对象相嵌套,即元素可以为对象,如:[{},{}...],对象中也可以包含数组,如:{[],[]...} [元素1,元素2...]
4、综合案例
{ "name":"齐天大圣", "age":999, "pengyou":["沙悟净", "八戒", "天蓬元帅", "悟能", { "name":"野马老师", "info":"像匹野马一样狂奔在技术钻研的道路上" } ], "heihei":{ "name":"大长刀", "length":"40m" } }
该案例就是一个JSON字符串格式,其中该对象里面的属性可以是对象也可以是数组(例如:“pengyou”这个属性),数组里的元素可以对象(如:{ “name”:“野马老师”, “info”:“像匹野马一样狂奔在技术钻研的道路上” })。
注释:下面的转换的Book类均为该类:
package com.java.jison; import java.util.Objects; public class Book { //定义两个变量,书名和简介 private String name; private String info; public Book() { } public Book(String name, String info) { this.name = name; this.info = info; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } @Override public String toString() { return "Book{" + "name='" + name + ''' + ", info='" + info + ''' + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Book book = (Book) o; return name.equals(book.name) && info.equals(book.info); } @Override public int hashCode() { return Objects.hash(name, info); } }二、Gson 1、实现对象和JSON字符串的转换
转换JSON字符串的步骤:
1. 引入JAR包
2. 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
package com.java.jison; import com.google.gson.Gson; public class Demo1 { public static void main(String[] args) { //创建Gson对象 Gson gson = new Gson(); Book b = new Book("金苹果","种苹果真辛苦!"); //调用toJson将对象转换为json文件格式 String s = gson.toJson(b); System.out.println(s);//输出:{"name":"金苹果","info":"种苹果真辛苦!"} } }2、实现JSON字符串和对象的转换
转换JSON字符串的步骤:
1. 引入JAR包
2. 在需要转换JSON字符串的位置编写如下代码即可:
类名 对象名 = new Gson().fromJson(要转换的Jason字符串);
注:在转换时,Jason字符串与对象类型一定要匹配
package com.java.jison; import com.google.gson.Gson; public class Demo3 { public static void main(String[] args) { //{"name":"金苹果","info":"种苹果真辛苦!"} //调用fromJson将Gson文件转换为匹配的对象 Gson gson = new Gson(); Book book = gson.fromJson("{"name":"金苹果","info":"种苹果真辛苦!"}", Book.class); System.out.println(book.getName());//输出:金苹果 } }3、实现JSON字符串和Map集合的转换
import com.google.gson.Gson; import java.util.HashMap; import java.util.List; public class Demo4 { public static void main(String[] args) { //{"name":"金苹果","info":"种苹果真辛苦!","数组":["你叉叉","穷哈哈","骑着扫帚飞"]} //若是该Gson文件是未知类,则可以将它转换成Map集合进行有效数据的筛选 Gson gson = new Gson(); HashMap hashMap = gson.fromJson("{"name":"金苹果","info":"种苹果真辛苦!","数组":["你叉叉","穷哈哈","骑着扫帚飞"]}", HashMap.class); //数组的类型为ArrayList类 System.out.println( hashMap.get("数组").getClass());//输出:class java.util.ArrayList //将数组强转为List类并且取出它的第一个元素 List list = (List) hashMap.get("数组"); System.out.println(list.get(1));//输出:穷哈哈 } }三、fastjason 1、实现对象和JSON字符串的转换
import com.alibaba.fastjson.JSON; public class Demo2 { public static void main(String[] args) { Book b = new Book("唐诗三百首","这本书里面有三百首唐诗"); //调用toJSonString()将对象转换成JSON字符串 String s = JSON.toJSONString(b); System.out.println(s); } }2、实现JSON字符串和对象的转换
import com.alibaba.fastjson.JSON; public class Demo5 { public static void main(String[] args) { //{"info":"这本书里面有三百首唐诗","name":"唐诗三百首"} //调用parseObject()方法将Json文件转换为对应的对象 Book book = JSON.parseObject("{"info":"这本书里面有三百首唐诗","name":"唐诗三百首"}", Book.class); System.out.println(book.getName());//输出:唐诗三百首 } }3、实现数组转换为String类型的List集合
import com.alibaba.fastjson.JSON; import java.util.List; public class Demo6 { public static void main(String[] args) { //["嘿嘿","俺","老","孙","来","也"] //将数组转换成String类型的数组 List四、 总结strings = JSON.parseArray("["嘿嘿","俺","老","孙","来","也"]", String.class); System.out.println(strings.get(1));//输出:俺 } }
本文主要介绍了JASON的两种解析方式:Gson和fastjason。无论使用哪一种方式,我们一定要及时更新jar包避免bug的发生。以上就是我个人对于JASON解析的学习总结,要是对大家有些许帮助便值当,请各路大佬批评指正!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)