使用fastjson,gson解析null值的时候键保留

由于业务需求。。。所以查阅资料,总结如下:

使用gson实现方法:只需要把new Gson()改为:

new GsonBuilder().serializeNulls().create(); 就可以了

public class Test {
    public static void main(String[] args) {
        Gson gson= new GsonBuilder().serializeNulls().create();
        Map < String , Object > jsonMap = new HashMap< String , Object>();
        jsonMap.put("a",1);
        jsonMap.put("b","");
        jsonMap.put("c",null);
        jsonMap.put("d","wuzhuti.cn");
        String str = gson.toJson(jsonMap);
        System.out.println(str);

        person peson1 = new person();
        peson1.setAge(1);
        peson1.setName(null);
        System.out.println(gson.toJson(peson1));
    }

}
class person{
    private int age;
    private String name;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

使用fastjson实现方法:只需要再toJsonString的时候加上

SerializerFeature.WriteMapNullValue 这个参数。

public class FastJsonTest {
    public static void main(String[] args) {
        /*
         * QuoteFieldNames———-输出key时是否使用双引号,默认为true
         * WriteMapNullValue——–是否输出值为null的字段,默认为false
         * WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
         * WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
         * WriteNullStringAsEmpty—字符类型字段如果为null,输出为"",而非null
         * WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
         */
        Map<String, Object> jsonMap = new HashMap<String, Object>();
        jsonMap.put("a", 1);
        jsonMap.put("b", "");
        jsonMap.put("c", null);
        jsonMap.put("d", "json");

        String str = JSONObject.toJSONString(jsonMap);
        // 忽略null输出
        System.out.println(str);

        String str2 = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue);

        System.out.println(str2);

        String json = "{\"fail\":null,\"updateTimestamp\":\"1484096131863\",\"productName\":\"json测试\"}";
        // 忽略null输出
        System.out.println(JSON.parse(json));
        //
        System.out.println(JSONObject.toJSON(json));
    }

}

以上。

原文地址:https://www.cnblogs.com/exmyth/p/11595224.html

时间: 2024-10-02 05:01:47

使用fastjson,gson解析null值的时候键保留的相关文章

fastjson null 值处理

偶然用到fastjson转换json 在前台用js解析竟然某些字段没有,曾经用过gson.联想到是不是相似gson默认将null值不显示了,找了下资料果真如此 直接上代码吧 import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; public class Test

我的Android进阶之旅------&gt;解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

1.问题描述 首先,需要解析的Json数据类似于下面的格式: { ret: 0, msg: "normal return.", news: [ { id: "NEW2016062800875700", from: "腾讯新闻客户端", qqnews_download_url: "http://inews.qq.com/m?refer=openapi_for_xiaotiancai", articletype: "1&

Android平台json解析(FastJson Gson 大比拼)

前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和使用的大比拼. FastJson 当前使用版本 fastjson-1.2.11.jar 下载地址http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/ 对象转化成json: /** * 对象转化为json fastjson 使用方式 *

安卓数据解析之 fastjson 的解析以及Gson解析

在安卓开发过程中的.我们经常使用的数据传递是以json格式传递.安卓 亲爹提供了我们Gson解析工具.点击下载Gson.jar 阿里巴巴FastJson是一个Json处理工具包,包含"序列化"和"反序列化"两部分,它具备例如以下特征: 速度最快.測试表明.fastjson具有极快的性能.超越任其它的Java Json parser.包含自称最快的JackJson: 功能强大.全然支持Java Bean.集合.Map.日期.Enum,支持范型.支持自省.无依赖,可以直

75、JSON 解析库---FastJson, Gson

JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交换传输. 易于人阅读和编写,同时也易于机器解析和生成. 基本结构:对象.数组. Gson 的简介和特点: Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. 快速.高效 代码量少

Gson解析第三方提供Json数据(天气预报,新闻等)

之前都是自己写后台,自己的server提供数据给client. 近期在看第三方的数据接口,訪问其它站点提供的信息.比方.我们可能自己收集的数据相当有限.可是网上提供了非常多关于天气预报.新闻.星座运势.身份证号.车辆违章.健康医疗.快递查询.ip查询.翻译等的api接口.基本返回数据为类型json和xml 我就喜欢简单便捷的东西.在这解析一下第三方新闻的接口返回的json数据: 我喜欢用谷歌提供的Gson,感觉比JSON去解析要简单.方便,快捷:当然了阿里巴巴提供的fastjson也是极好的.在

Android:使用Gson解析复杂的JSON数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,目前广泛使用.本文主要讲解android如何解析复杂格式的JSON数据,适合android初学者和初步接触JSON的人. 1.JSON相关介绍: 首先了解一下JSON的相关内容,JSON中的数据是以键值对的形式出现的.例如"name":"jack":这就是一个键值对,可以理解为name=jack.JSON中很重要的两个概念就是数组(array)和对象(object),初学者

Android网络之数据解析----使用Google Gson解析Json数据

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4063452.html 联系方式:[email protected] [正文] 文章回顾: Android网络之数据解析----SAX方式解析XML数据 一.Json数据的介绍                                                             

Gson 解析教程

Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等 本人fastJson用了两年,也是从去年才开始接触Gson,希望下面的总结会对博友有用,至于Gson与FastJson的对比,其实半斤八两的问题,不再赘述 第一步:在AS下面创建Java工程 并添加gson依赖 compile 'com.google.code.gson:gson:2.6.2' Gson的实例化方式: 1:Gson gson=newGson(); 2:通过GsonBuilder