将实体类转换为json时过滤类中指定的属性
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
一般将对象序列化使用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;
}
}
在这个类里面就可以指定需要序列化的属性。
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
3 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)