首页 > Web开发 > 详细

JSON: jasckson 字段 过滤

时间:2015-06-15 18:32:52      阅读:273      评论:0      收藏:0      [点我收藏+]

有这样一个场景存在一个model类如果User,这里省略了getter/setter方法

class User {
    String name;
    String uuid;
    Long created;
Long updated; Attr attr; }
class Attr {
    String field1;
    String field2;
    Long field3;
}

在编写后台CRUD API时,CRD都比较简单原模原样存取这个User Model即可。但是涉及到Update这个操作时,如果用户完完整整的返回了已经更改后的object,还是原模原样去存储么?万一请求把一些诸如created这样的字段也给改了怎么办?可以采取几种办法:

1. 限制请求发送。让发送方使用与服务端配套的APIClient,在client中对这些情况进行处理

方法很多,但是如果有人绕过APIClient直接发请求,就很危险了。

2. 过滤请求。服务端在收到这些数据后过滤其中不需要或者不允许更新的部分。

可以对收到的包含update数据的json体进行一些过滤,删除一些字段,这样再反序列化生成对应model时这些值就没了。

ObjectNode 
        root = (ObjectNode) mapper.readTree(updateJson);

        root.remove(updateBlackList);

        root.put("updated", System.currentTimeMillis());

return root.toString();

其中的mapper时jackson包里的ObjectMapper,root即为输入json转换后的节点。同时向请求json中加入了更新时间。

 

JSON: jasckson 字段 过滤

原文:http://www.cnblogs.com/lailailai/p/4578658.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!