FastJson 解析、序列化及反序列化

一、环境准备:使用maven特性在pom.xml中导入fastjson的依赖包

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
</dependency>

二、序列化

package cn.xiaobing.json;

import com.alibaba.fastjson.JSONObject;

import cn.xiaobing.pojo.ResultJson;

public class jsonDemo02 {
    /**将对象序列化成json
     * @return jsonString
     */
    public static String entityToJsonString () {
        //构造器实例化对象
        ResultJson resutlJson = new ResultJson("2","登录失败,密码错误!");
        //利用fastjson中JSONObject类的toJSONString方法,实现将对象ResultJson转化为jsonString
//        String jsonString = JSONObject.toJSONString(resutlJson);
        //如果需要美化输出json格式
        String jsonString = JSONObject.toJSONString(resutlJson,true);
        return jsonString;
    }
    public static void main(String[] args) {
        String jsonString = entityToJsonString();
        System.out.println("ResultJson序列化json字符串:"+"\n"+jsonString);
    }
}

三、反序列化

1.提供json字符串如:{"status":"1","message":"登录成功"}

2.创建实体类对象

package cn.xiaobing.pojo;

/**创建实体类ResultJson,属性与提供jsonString中的key保持一致
 * @author Administrator
 */
public class ResultJson {
    private String status;
    private String message;
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }

    public ResultJson() {
        super();
    }
    public ResultJson(String status, String message) {
        super();
        this.status = status;
        this.message = message;
    }
    @Override
    public String toString() {
        return "ResultJson [status=" + status + ", message=" + message + "]";
    }
}

3.利用fastJson实现json字符串的反序列化

 1 package cn.xiaobing.json;
 2
 3 import java.util.Map;
 4
 5 import com.alibaba.fastjson.JSONObject;
 6
 7 import cn.xiaobing.pojo.ResultJson;
 8
 9 /**利用fastJson实现json字符串的反序列化
10  * @author Administrator
11  */
12 public class jsonDemo01 {
13     //提供json字符串{"status":"1","message":"登录成功"}
14     static String jsonString = "{\"status\":\"1\",\"message\":\"登录成功\"}";
15     /**
16      * 利用fastJson实现json字符串反序列化为对象
17      */
18     public static ResultJson jsonStringToEntity() {
19
20         //创建实体类 resultJson,利用fastjson中JSONObject类的parseObject方法,实现将jsonString转化为对象ResultJson
21         ResultJson resultJson = JSONObject.parseObject(jsonString, ResultJson.class);
22         return resultJson;
23     }
24     /**
25      * 利用fastJson实现json字符串保存Map中
26      */
27     public static Map<String, String> jsonStringToMapping() {
28         //将json字符串封装到Map
29         Map<String, String> map = (Map<String, String>) JSONObject.parse(jsonString);
30         return map;
31     }
32     public static void main(String[] args) {
33         ResultJson resultJson = jsonStringToEntity();
34         System.out.println("json转换成对象输出:"+"status:"+resultJson.getStatus()+",message:"+resultJson.getMessage());
35         Map<String, String> map = jsonStringToMapping();
36         System.out.println("json转换成Map输出:"+"status:"+map.get("status")+",message:"+map.get("message"));
37     }
38 }

4.未完待续... ...

原文地址:https://www.cnblogs.com/xiaozhaoboke/p/11029695.html

时间: 2024-10-08 14:12:29

FastJson 解析、序列化及反序列化的相关文章

Android 中的Json解析工具fastjson 、序列化、反序列化

Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:    速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson: 功能强大,完全支持JavaBean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持And

fastjson生成和解析json数据,序列化和反序列化数据

本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>) 2.通过一个android程序测试fastjson的用法. fastjson简介: Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack

使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象),在这篇文章中我将通过JToken.JObject和JArray来动态解析JSON对象,使它很容易创建和检索的JSON内容而无需基础类型.通过JObject和JArray创建JSON对象我们先用非常简单的方法来动态创建一些JSON,可通过JToken派生的JSON.NET对象来进行,最常见的JTo

jackson实现序列化的反序列化解析

现在项目开发过程中,字符串的传递成为前后端交互的主要方式,主要是因为字符串不会出现乱码等问题,传送方式是字节码传递,效率比实体较安全. 常见的Json类库有Gson.JSON-lib和Jackson,fastjson(阿里提供,自称效率最高的)等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的JSON操作方法. 一,下载jackson http://wiki.fasterxml.com/JacksonDownload 二

.net实现序列化与反序列化实例解析

序列化与反序列化是.net程序设计中常见的应用,本文即以实例展示了.net实现序列化与反序列化的方法.具体如下: 一般来说,.net中的 序列化其实就是将一个对象的所有相关的数据保存为一个二进制文件 (注意:是一个对象) 而且与这个对象相关的所有类型都必须是可序列化的所以要在相关类中加上 [Serializable]特性 对象类型包括:对象本身包含的类型,父类 拥有需要的对象之后: 1.将对象转换为二进制数据 使用专门的对像进行转换 BinaryFormatter 2.将二进制数据写入到文件 F

Python 解析模块 异常模块 响应模块 序列化和反序列化组件

解析模块(后端根据指定的解析规则来解析前端发来的数据) 为什么要配置解析模块 1)drf给我们通过了多种解析数据包方式的解析类 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析 3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图来,让它们可以按照配置规则选择性解析数据 源码入口 # APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去 #

c# xml序列化和反序列化。也就是xml的解析和反解析。

用习惯了newTownSoft.json 的json反序列化.碰到xml是真的不习惯. 每次json反序列化都是直接把json丢到bejson网站生成一个实体类,稍微修改修改一点点变量名.然后直接newTownSoft反序列化,一下就得到一个实体类了.今天调某个接口,碰到xml. 记录如下. xml <response> <functionID>setItemsPics</functionID> <time>2017-09-07 15:51:04</t

Json数据的序列化与反序列化的三种常用方法介绍

以下内容是本作者从官网中看相应的教程后所做的demo,其体现了作者对相关知识点的个人理解..作者才疏学浅,难免会有理解不到位的地方..还请各位读者批判性对待... 本文主要介绍在Json数据的序列化与反序列化的过程中我经常用到的三种工具的基本使用方法,及其他们之间 的比较...希望能够对读者们有一些帮助... 这里介绍到的三种解析与生成Json数据的方法分别是:标准JSON解析与生成方法.使用gson解析与生成JSON数据 .使用fastJsson解析与生成JSON数据. 首先,这些工具都可以到

(转)JSON 之FastJson解析

一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson:功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持Android:开源 (Apache 2.0) Fastjson API入口类是com.alibaba.fastjso

JSON 之FastJson解析

一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson:功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持Android:开源 (Apache 2.0) Fastjson API入口类是com.alibaba.fastjso