JavaWeb_(Jar)使用fastjson解析json和序列化对象
菜鸟教程 传送门
JSON官网 传送门
fastjson插件下载 传送门
序列化【百度百科】:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象
反序列化:反序列化从序列化的表示形式中提取数据,并直接设置对象状态
持久化【百度百科】:持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)
简单数据解析json和序列化对象
package com.Gary.util; import com.Gary.model.Goods; import com.alibaba.fastjson.JSON; public class GaryJson { public static void main(String[] args) { //序列化 持久化 Goods goods = new Goods("香蕉","这是香蕉",100,400); String json = JSON.toJSONString(goods); System.out.println(json); //反序列化 解析 String s = "{\"des\":\"这是香蕉\",\"inventory\":400,\"name\":\"香蕉\",\"price\":100}"; Goods goods2 = JSON.parseObject(s, Goods.class); System.out.println(goods2.getName()); System.out.println(goods2.getDes()); System.out.println(goods2.getPrice()); System.out.println(goods2.getInventory()); } }
通常境况下json数据都会直接获取,复制粘贴json数据时,可通过@""方法
解析字符串时可@""方法将代码copy进" "中编辑器会自动添加"\"及"\r"符
复杂数据解析json和序列化对象
解析JSON数组对象时候需要存在一个对象集合去保存
[
{
"name":"Gary1",
"age":10,
"sex":"man"
},
{
"name":"Gary2",
"age":20,
"sex":"man"
},
{
"name":"Gary3",
"age":30,
"sex":"women"
}
]
package com.Gary.util; import java.util.List; import com.alibaba.fastjson.JSON; public class GaryJson { public static void main(String[] args) { String s = "[\r\n" + "{\r\n" + " \"name\":\"Gary1\",\r\n" + " \"age\":10,\r\n" + " \"sex\":\"man\"\r\n" + "},\r\n" + "{\r\n" + " \"name\":\"Gary2\",\r\n" + " \"age\":20,\r\n" + " \"sex\":\"man\"\r\n" + "},\r\n" + "{\r\n" + " \"name\":\"Gary3\",\r\n" + " \"age\":30,\r\n" + " \"sex\":\"women\"\r\n" + "}\r\n" + "]"; List<User> list = JSON.parseArray(s,(User.class)); for(User u : list) { System.out.println(u); } } }
package com.Gary.util; public class User { private String name; private String sex; private int age; public User(String name, String sex, int age) { super(); this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } //重写toString方法方便观察 @Override public String toString() { return "User [name=" + name + ", sex=" + sex + ", age=" + age + "]"; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
需要解释的JSON对象
{
"name":"Gary1",
"age":10,
"sex":"man"
}
存在一个类要和JSON对象属性保持一致
private String name; private String sex; private int age;
通过fastjson.JSON解析JSON数据
List<User> list = JSON.parseArray(s,(User.class)); for(User u : list) { System.out.println(u); }
(如需转载学习,请标明出处)