import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.eeesys.xzjs.entity.Part;
import com.eeesys.xzjs.entity.User;
public class testFastJson {
public static void main(String[] args) {
User user=new User();
user.setId(1l);
user.setName("zhang");
user.setEmail("123@q");
user.setCompany("\"jsdfl\"");
user.setDate(new Date());
Part part1=new Part(1l, "p1");
Part part2=new Part(2l, "p2");
user.getParts().add(part1);
user.getParts().add(part2);
//类的序列化
String userJson=JSON.toJSONString(user);
System.out.println(userJson);
//参数可变长
String userJson2=JSON.toJSONString(user,SerializerFeature.DisableCheckSpecialChar, SerializerFeature.WriteDateUseDateFormat );
System.out.println(userJson2);
//日期格式化
String dateStr=JSON.toJSONStringWithDateFormat(user, "yyyy-MM-dd",SerializerFeature.UseSingleQuotes , SerializerFeature.DisableCheckSpecialChar);
System.out.println(dateStr);
//其它类型的序列化
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", "zhangsan");
map.put("age", 24);
map.put("sex", "男");
//map集合
HashMap<String, Object> temp = new HashMap<String, Object>();
temp.put("name", "xiaohong");
temp.put("age", "23");
map.put("girlInfo", temp);
//list集合
List<String> list = new ArrayList<String>();
list.add("爬山");
list.add("骑车");
list.add("旅游");
map.put("hobby", list);
String jsonString = JSON.toJSONString(map);
System.out.println("JSON=" + jsonString);
// DisableCheckSpecialChar:一个对象的字符串属性中如果有特殊字符如双引号,将会在转成json时带有反斜杠转移符。如果不需要转义,可以使用这个属性。默认为false
// UseSingleQuotes 输出单引号
// QuoteFieldNames———-输出key时是否使用双引号,默认为true
// WriteMapNullValue——–是否输出值为null的字段,默认为false
// WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
// WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
// WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null 测试不通过
// WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
// WriteDateUseDateFormat 日期类型的转换
// BrowserCompatible 浏览器和设备兼容
// @JSONField(name="ID") 在字段上加上注解,可使序列化时字段名称改为注解名称
//反序列化
JSONObject jObj=JSONObject.parseObject(dateStr);
String pStr=jObj.get("parts").toString();
//json to array
List pList=JSON.parseArray(pStr);
//json to Map
Map jMap=JSON.parseObject(pList.get(0).toString());
System.out.println(jMap.get("name"));
//类的序列化,支持泛型
String json="{\"part\":{\"name\":\"张三\",\"id\":123}}";
Map<String, User> uMap = JSON.parseObject(json, new TypeReference<Map<String, User>>(){});
System.out.println(uMap.get("part"));
}
}
//user类
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
private String company;
private String email;
private Date date;
private List<Part> parts = new ArrayList<Part>();
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public List<Part> getParts() {
return parts;
}
public void setParts(List<Part> parts) {
this.parts = parts;
}
}
//part类
import java.io.Serializable;
public class Part implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Part(Long id, String name) {
super();
this.id = id;
this.name = name;
}
}
相关推荐
由于其高效、轻量级的特点,Fastjson在许多Java应用中被广泛使用,尤其是在处理大量JSON数据时。在本教程中,我们将深入探讨Fastjson的基本用法,包括序列化和反序列化。 ### 1. **序列化** **序列化**是指将Java...
fastJSON 使用介绍 fastJSON 是一个快速的 JSON 组件,可以用于 C# 中对 JSON 数据的序列化和反序列化。下面是关于 fastJSON 的知识点: fastJSON 简介 fastJSON 是一个开源的 JSON 序列化组件,可以用于 C# 中对...
FastJSON 使用指南 FastJSON 是一个 Java 语言编写的高性能功能完善的 JSON 库。下面是 FastJSON 的详细介绍和使用指南。 FastJSON 特点 FastJSON 采用独创的算法,将 parse 的速度提升到极致,超过所有 JSON 库...
### Fastjson 使用详解 #### 一、概述 Fastjson 是阿里巴巴开源的一款高性能的 JSON 序列化/反序列化库,旨在提供一个简单且快速的方式来处理 JSON 数据。它支持 Java 泛型、自定义序列化类、任意复杂对象以及预先...
FastJSON 使用指南 FastJSON 是一个 Java 语言编写的高性能功能完善的 JSON 库。它采用独创的算法,将 parse 的速度提升到极致,超过所有 JSON 库,包括曾经号称最快的 Jackson。FastJSON 还超越了 Google 的二进制...
### fastjson 使用详解 #### 一、概述 `fastjson` 是阿里巴巴开发的一款高性能的 JSON 库,主要用于 Java 对象与 JSON 字符串之间的互相转换。它提供了非常快速且轻量级的序列化和反序列化操作,在 Android 开发和...
以下是Fastjson使用的一些关键知识点: 1. **基本使用**:首先需要引入Fastjson的依赖,通常通过Maven或Gradle进行管理。例如,在Maven中添加以下依赖: ```xml <groupId>com.alibaba</groupId> <artifactId>...
json解析:FastJson使用归纳.pdf
本文将深入探讨Gson和Fastjson的使用,以及它们各自的特点。 **Gson** Gson是由Google提供的一个开源库,它能够将Java对象转换为JSON字符串,反之亦然。Gson的优点在于其灵活性和易用性。下面是如何使用Gson的基本...
作为开源项目,Fastjson使用Apache License 2.0协议进行开源。 Fastjson主要特点包括: 1. 高性能:Fastjson在性能测试中表现优异,适合在对性能有较高要求的场合使用。 2. 功能全面:支持丰富的数据类型转换,并...
本资源提供了Fastjson的使用案例源码,虽然作者提到“这个资源并没有什么用处”,但通过学习这些源码,我们可以深入理解Fastjson的用法,并提升在实际项目中的应用能力。 1. **快速入门** - **序列化**:将Java...
本篇文章将深入探讨Fastjson的使用及其优势,帮助开发者更好地理解和应用这个工具。 Fastjson的核心功能主要包括: 1. **Java对象与JSON字符串之间的转换**:Fastjson支持将Java对象直接转换为JSON字符串,同时也...
三、Fastjson使用示例 1. **JSON字符串转Java对象** ```java String jsonString = "{\"name\":\"张三\",\"age\":25}"; Person person = JSON.parseObject(jsonString, Person.class); ``` 2. **Java对象转JSON...
下面是一些关键的Fastjson使用方法: 1. **解析JSON字符串到Java对象** - `JSONObject.parseObject(String jsonString, Class<T> clazz)`:将JSON字符串解析为Java对象,其中`T`是你想要的类类型。 - `JSONArray....
然而,近期阿里云官方发布了一则安全公告,指出 Fastjson 在特定版本中存在严重的远程代码执行(RCE)漏洞,这为攻击者提供了潜在的攻击途径,威胁到了使用这些版本的应用系统安全。 **漏洞详情** 该漏洞主要存在...
在标题提到的"fastjson所用jar包"中,我们讨论的是Fastjson的两个核心jar文件,这些文件通常包含了Fastjson的所有功能,使得开发者能够在自己的项目中便捷地引入和使用Fastjson。 **Fastjson的功能** 1. **解析...
下面是一个简单的FastJSON使用示例: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class FastJSONExample { public static void main(String[] args) { // 创建...