Save Load
GitHub 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

JSON

FastJson

1、序列化时过滤字段(属性)

@JSONField(serialize = false)
private String name;
@JSONField(name = "AGE")
private transient String age;

在实体字段前面,使用transient关键字,表示该字段不参与序列化,转JSON字符串时就可以忽略掉该字段。因为是JAVA关键字所以也会影响该字段其他序列化操作。

 SimplePropertyPreFilter filter = new SimplePropertyPreFilter();
filter.getExcludes().add("PHONE");
System.out.println(JSONObject.toJSONString(u, filter));

FastJson的属性名过滤器

2、序列化时过滤字段(属性)

@JSONField(serialize = false)
private String name;

3、

System.out.println("RefundCollection 的 json: " + JSON.toJSONString(logisticsAddress.getLogisticsAddressDTOList(), SerializerFeature.WriteMapNullValue));

4、

        // 序列化配置对象
        SerializeConfig config = new SerializeConfig();
        /**
         * CamelCase 策略,Java对象属性:personId,序列化后属性:persionId
         * PascalCase 策略,Java对象属性:personId,序列化后属性:PersonId
         * SnakeCase 策略,Java对象属性:personId,序列化后属性:person_id
         * KebabCase 策略,Java对象属性:personId,序列化后属性:person-id
         */
        config.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;;

        // 序列化对象
        String json = JSON.toJSONString(object,config);

        System.out.println("反序列 person json -> ");

Gson

    @SerializedName("app_key")
    private String appKey = null;
List<String> name = new Gson().fromJson(json, new TypeToken<List<String>>() {}.getType());
        Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
        DouDianResponseDTO<NewCreateOrderResponseDTO> dtoDouDianResponseDTO = gson.fromJson(returns.getBody(), new TypeToken<DouDianResponseDTO<NewCreateOrderResponseDTO>>() {
        }.getType());
Json的序列化与反序列化,分别对应不同的名称,那么只需要设置@SerializedName(value="序列化、反序列化默认名称",alternate={"反序列化名称备选"})