为了账号安全,请及时绑定邮箱和手机立即绑定

如何将参数传递给 toJson()?

如何将参数传递给 toJson()?

呼啦一阵风 2021-06-25 10:05:22
我有类 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 对象,但根据客户的要求,我只需要其中的一些。
查看完整描述

2 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

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


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"),然后使用相同的对象。


查看完整回答
反对 回复 2021-06-30
?
函数式编程

TA贡献1807条经验 获得超9个赞

我自己回答我的问题。解决方案非常简单。

我创建了特殊的方法过滤器,它创建了具有正确字段值的对象的时间副本。所以我序列化了这个对象而不是原始对象。



查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信