通过fastjson将一个对象序列化为json,同时加入指定的序列化逻辑

author author     2022-09-10     520

关键词:

主函数:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.google.common.base.Preconditions;

public class xiaomi {
    public static void main(String[] args) {
        A a = new A();
        String json =ok.object2Json(a);
        System.out.println(json);
    }
}

实体类:

技术分享
class A{
    int a;
    int b=1;
    String des ="wuhan";
    String dep ="xiantao";
    public String getDes() {
        return des;
    }
    public void setDes(String des) {
        this.des = des;
    }
    public String getDep() {
        return dep;
    }
    public void setDep(String dep) {
        this.dep = dep;
    }
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public int getB() {
        return b;
    }
    public void setB(int b) {
        this.b = b;
    }
}
实体类

序列化类:

class ok{
    public static String object2Json(Object o){
        Preconditions.checkNotNull(o);
        String json = JSON.toJSONString(o, new ValueFilter() {
            @Override
            public Object process(Object object, String name, Object value) {
                if (name == "a" && value.equals(0))//当有属性a的至等于0时,json的值赋为null
                    return null;
                else if (name == "d" && value == null)//当有属性d的至等于null时,json的值赋为"",此处因为实体类A里没有名字为d的属性,故实际不会被执行
                    return "";
                return value;
            }
        });
        return json;
    }
}

运行结果:

{"b":1,"dep":"xiantao","des":"wuhan"}

Process finished with exit code 0

 

总结:类a的属性a,因为值等于零,最后json对应的值被判为空,故最后不加入序列化。

JSON.Net 将集合序列化为数组数组

...DataTablesAjax期望JSON数据是一个数组。使用JSON.Net是否可以通过属性/设置将集合序列化为数组数组而不是对象数组,或者是否必须通过自定义JsonConverter来完成。我要序列化的对象如下:public 查看详情

利用fastjson反序列化json为对象和对象数组

利用fastjson反序列化json为对象和对象数组利用fastjosn将.json文件反序列化为java.class和java.util.Listfastjson是一个性能很好的Java语言实现的JSON解析器和生成器,来自阿里巴巴的工程师开发。【主要特点】1、快速FAST(比其它任何基于Java... 查看详情

将对象序列化为 JSON

...我正在尝试的内容。我需要使用自定义NSObject(食谱)并通过电子邮件中的URL字符串发送。然后收件人将在我的应用程序中打开链接并解析URL。我现有的实现从配方的详细信息手动构建一个字符串,并在另一端对其进行解码。我... 查看详情

通过 RestKit 将 JSON 的本地 NSString 反序列化为对象(无网络下载)

】通过RestKit将JSON的本地NSString反序列化为对象(无网络下载)【英文标题】:DeserializinglocalNSStringofJSONintoobjectsviaRestKit(nonetworkdownload)【发布时间】:2012-01-1521:42:47【问题描述】:是否可以通过RestKit将JSON的NSString反序列化为对象... 查看详情

将 JSON 反序列化为匿名对象

...布时间】:2011-10-1719:16:55【问题描述】:在C#中,我已经通过使用这样的代码成功地将匿名对象序列化为JSON...varobj=newAmount=108,Message="Hello";JavaScriptSerializerserializer=newJavaScriptSerializer();Stri 查看详情

Symfony - 将 json 反序列化为实体数组

...ies【发布时间】:2014-05-2721:48:53【问题描述】:我有一个通过getAPI调用收到的json对象。我进行此调用以接收对象列表。这是一个帖子列表......所以我有一个帖子对象数组。这里是输出:"total":2,"data":["id":2,"user":"id":1,"usern 查看详情

将 JSON 命名属性反序列化为 .Net 对象

...题描述】:我使用的API提供了JSON负载。响应的一部分有一个包含命名对象数组的属性。我想我想将这部分反序列化为一个.Net列表,问题是数组中的每个对象都带有一个名称,所以我无法将它作为一个列表。这是有效载荷:"ShipAc... 查看详情

将 JSON 反序列化为对象

...有一些JSON:"foo":["bar":"baz","bar":"qux"]我想将其反序列化为一个集合。我已经定义了这个类:publicclassFoopublicstringbarget;set;但是,下面的代码不起作用:JsonConvert.DeserializeOb 查看详情

将 JSON 反序列化为对象

...有一些JSON:"foo":["bar":"baz","bar":"qux"]我想将其反序列化为一个集合。我已经定义了这个类:publicclassFoopublicstringbarget;set;但是,下面的代码不起作用:JsonConvert.DeserializeOb 查看详情

使用jackson将json数组反序列化为单个java对象(代码片段)

...是,我想将JSON数组["foo","bar"]转换为Java对象,因此我需要通过索引将每个数组元素映射到property。假设我有以下JSON:"persons":[["John","Doe"],["Jane","Doe"]]正如您所看到的,每个人只是一个数组,其中第一个名称是索引为0的元素,而最... 查看详情

将列表序列化为 JSON

...isttoJSON【发布时间】:2012-02-2500:18:20【问题描述】:我有一个如下所示的对象模型:publicMyObjectInJsonpubliclongObjectIDget;set;publicstringObjectInJsonget;set;属性ObjectInJson是一个已经序列化的版本,是一个包含嵌套列表的对象。目前,我正在... 查看详情

JSON:将 DataRow 序列化为父对象

...entobject【发布时间】:2020-06-0315:25:37【问题描述】:我有一个树形结构,由DataTable中的行创建,每个DataRow生成一个节点。每个节点当然应该包含子节点,还要包含源DataRow:publicclassTreeNodepublicList<TreeNode>Itemsget 查看详情

无法将 JSON 数组反序列化为 C# 对象 [关闭]

...t[closed]【发布时间】:2021-09-2812:24:24【问题描述】:我有一个HTML页面和一些进行AJAX调用的Javascript代码。在我的API(C#)的服务器端,我收到一个JSON数组,如下所示,它最多可以有60个元素。对于每个元素,我都映射了一个类对象... 查看详情

如何将表行序列化为 json 对象

...何将表格序列化为json数组,使每个数组元素都包含代表一个表格行的json对象:[name:"variable1",valuetostore:"a-b",totaltype:"Lowest",name:"variable2",valuetostore:"c-d 查看详情

如何将具有嵌套属性的 JSON 对象反序列化为 Symfony 实体?

...:2021-09-2123:14:45【问题描述】:我正在将JSON反序列化为一个php类(一个Symfony实体),它工作正常,但我的JSON中有一个嵌套属性,我不知道如何进入php类。PHP类:classV 查看详情

将 JSON 反序列化为现有对象 (Java)

...有对象?我试图找到如何做到这一点;但它似乎只能接受一个类并自己实例化它。或者如果不可能,我想知道是否有任何JavaJSON反序列化库可以做到这一点。这似乎是C#的相应问题:Overl 查看详情

将 ES6 类对象序列化为 JSON

...员实际上都是javascript对象(数组等)。我想我可以维护一个变量 查看详情

PRAW:将评论和提交对象序列化为 JSON

...布时间】:2014-09-0502:15:03【问题描述】:我目前正在开发一个使用praw进行数据挖掘的reddit爬虫。我想从subreddits爬取cmets和提交,然后将它们保存在数据库或文件中,最好是json格式以供以后使用。我在尝试将评论和提交对象序列... 查看详情