我有WorldModel类,它具有ArrayList字段国家/地区,我需要对JSON进行序列化,而不是所有国家/地区,而是仅由客户端请求。

有什么方法可以将参数传递给toJson()函数吗?一些数组或列表?
仅序列化考虑条件的字段。

编辑:添加了用例代码:

@ResponseBody
@RequestMapping(value = "/getWorldModel", method = RequestMethod.GET)
public String getInfrastructure(Model model, @RequestParam(value = "countries", required = true) String countries) {

    Gson jsonCTS = jsonBuilder.fromWorldModelToJson();
    String jCTS = jsonCTS.toJson(worldModel);

    return jCTS;
}


我对具有许多国家/地区的WorldModel worldModel对象进行了序列化,但根据客户的要求,我只需要其中一些。

最佳答案

如果要排除对象的某些字段,可以通过以下代码完成:

Gson gson = new GsonBuilder()
        .addSerializationExclusionStrategy(new ExclusionStrategy() {
            @Override
            public boolean shouldSkipField(FieldAttributes f) {
                //your condition
                return f.getName().equal("test");
            }

            @Override
            public boolean shouldSkipClass(Class<?> aClass) {
                return false;
            }
        })
        .create();


如果要排除列表中的某些元素,可以简单地通过list.remove("test")编辑列表,然后使用相同的对象。

09-13 12:25