`

fastjson 使用

阅读更多

 

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使用

    由于其高效、轻量级的特点,Fastjson在许多Java应用中被广泛使用,尤其是在处理大量JSON数据时。在本教程中,我们将深入探讨Fastjson的基本用法,包括序列化和反序列化。 ### 1. **序列化** **序列化**是指将Java...

    C#简单快速的json组件fastJSON使用介绍.docx

    fastJSON 使用介绍 fastJSON 是一个快速的 JSON 组件,可以用于 C# 中对 JSON 数据的序列化和反序列化。下面是关于 fastJSON 的知识点: fastJSON 简介 fastJSON 是一个开源的 JSON 序列化组件,可以用于 C# 中对...

    fastJSON使用.pdf

    FastJSON 使用指南 FastJSON 是一个 Java 语言编写的高性能功能完善的 JSON 库。下面是 FastJSON 的详细介绍和使用指南。 FastJSON 特点 FastJSON 采用独创的算法,将 parse 的速度提升到极致,超过所有 JSON 库...

    fastjson使用详解.md

    ### Fastjson 使用详解 #### 一、概述 Fastjson 是阿里巴巴开源的一款高性能的 JSON 序列化/反序列化库,旨在提供一个简单且快速的方式来处理 JSON 数据。它支持 Java 泛型、自定义序列化类、任意复杂对象以及预先...

    fastJSON使用.docx

    FastJSON 使用指南 FastJSON 是一个 Java 语言编写的高性能功能完善的 JSON 库。它采用独创的算法,将 parse 的速度提升到极致,超过所有 JSON 库,包括曾经号称最快的 Jackson。FastJSON 还超越了 Google 的二进制...

    fastjson使用详解.txt

    ### fastjson 使用详解 #### 一、概述 `fastjson` 是阿里巴巴开发的一款高性能的 JSON 库,主要用于 Java 对象与 JSON 字符串之间的互相转换。它提供了非常快速且轻量级的序列化和反序列化操作,在 Android 开发和...

    fastjson使用实例

    以下是Fastjson使用的一些关键知识点: 1. **基本使用**:首先需要引入Fastjson的依赖,通常通过Maven或Gradle进行管理。例如,在Maven中添加以下依赖: ```xml &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;...

    json解析:FastJson使用归纳.pdf

    json解析:FastJson使用归纳.pdf

    Gson和Fastjson 使用Demo

    本文将深入探讨Gson和Fastjson的使用,以及它们各自的特点。 **Gson** Gson是由Google提供的一个开源库,它能够将Java对象转换为JSON字符串,反之亦然。Gson的优点在于其灵活性和易用性。下面是如何使用Gson的基本...

    fastjson 使用方法详细介绍

    作为开源项目,Fastjson使用Apache License 2.0协议进行开源。 Fastjson主要特点包括: 1. 高性能:Fastjson在性能测试中表现优异,适合在对性能有较高要求的场合使用。 2. 功能全面:支持丰富的数据类型转换,并...

    fastjson使用案例源码

    本资源提供了Fastjson的使用案例源码,虽然作者提到“这个资源并没有什么用处”,但通过学习这些源码,我们可以深入理解Fastjson的用法,并提升在实际项目中的应用能力。 1. **快速入门** - **序列化**:将Java...

    fastjson包和使用说明

    本篇文章将深入探讨Fastjson的使用及其优势,帮助开发者更好地理解和应用这个工具。 Fastjson的核心功能主要包括: 1. **Java对象与JSON字符串之间的转换**:Fastjson支持将Java对象直接转换为JSON字符串,同时也...

    fastjson1.2.2.jar

    三、Fastjson使用示例 1. **JSON字符串转Java对象** ```java String jsonString = "{\"name\":\"张三\",\"age\":25}"; Person person = JSON.parseObject(jsonString, Person.class); ``` 2. **Java对象转JSON...

    java FASTJSON 解析复杂JSON实例源码

    下面是一些关键的Fastjson使用方法: 1. **解析JSON字符串到Java对象** - `JSONObject.parseObject(String jsonString, Class&lt;T&gt; clazz)`:将JSON字符串解析为Java对象,其中`T`是你想要的类类型。 - `JSONArray....

    fastjson-1.2.58.rar

    然而,近期阿里云官方发布了一则安全公告,指出 Fastjson 在特定版本中存在严重的远程代码执行(RCE)漏洞,这为攻击者提供了潜在的攻击途径,威胁到了使用这些版本的应用系统安全。 **漏洞详情** 该漏洞主要存在...

    fastjson所用jar包

    在标题提到的"fastjson所用jar包"中,我们讨论的是Fastjson的两个核心jar文件,这些文件通常包含了Fastjson的所有功能,使得开发者能够在自己的项目中便捷地引入和使用Fastjson。 **Fastjson的功能** 1. **解析...

    fastjson.pdf

    下面是一个简单的FastJSON使用示例: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class FastJSONExample { public static void main(String[] args) { // 创建...

Global site tag (gtag.js) - Google Analytics