将实体类转换为json时过滤类中指定的属性

本文深入讲解了使用fastjson和Gson进行对象序列化的多种方法,包括实体类转换为JSON串、JSON串转换为实体类等,并介绍了如何通过注解和自定义序列化器来过滤或定制序列化属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般将对象序列化使用fastjson和Gson两种类

fastjson类的使用

使用fastjson主要有下面三种方法:

1. 实体类或集合转JSON串

String jsonString = JSONObject.toJSONString(实体类);
2.JSON串转JSONObject

JSONObject jsonObject = JSONObject.parseObject(jsonString);

3.JSON串转实体类

实体类 javaBean = JSON.parseObject(json, 实体类.class);
如果需要过滤实体类中的某个属性则可以使用下面几种方法:
一、使用transient关键字
把需要过滤掉属性使用transient关键字修饰,这样在调用JSON的toString方法时,被transient修饰的属性不会出现在最终的json字符串中,举例如下

private transient String id;
二、使用注解
还是以id属性为例,使用注解@JSONField(serialize=false),示例如下:

@JSONField(serialize=false)
private String id;

Gson的使用

首先使用

import com.advantech.mdm.dbmger.entity.User;

private final Gson gson;
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeHierarchyAdapter(User.class//需要序列化的实体类, new UserSerializer());
gson = gsonBuilder.create();
使用toJson方法实现实体类转json:
gson.toJson(deviceGroup);

创建ClientSerializer类:

package org.eclipse.leshan.standalone.servlet.json;

import com.advantech.mdm.dbmger.entity.User;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

import java.lang.reflect.Type;

public class UserSerializer implements JsonSerializer<User> {
    @Override
    public JsonElement serialize(User src, Type typeOfSrc, JsonSerializationContext context) {
        JsonObject element = new JsonObject();

        element.addProperty("name", src.getName());
        element.addProperty("apprepoaddress", src.getAppRepoAddress());
        element.addProperty("appdownloadaddress", src.getAppDownloadAddress());
        element.addProperty("vncip", src.getVncIp());
        element.addProperty("vncport", src.getVncPort());
        element.addProperty("bsprepoaddress", src.getBspRepoAddress());
        return element;
    }
}

在这个类里面就可以指定需要序列化的属性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值