前后端分离时,传输json问题

@波总 波总,想请教下,一般我们在做前后端分离的时候,都是将 model 转成 json 格式去传输,但是转的时候,并不想把所有字段都要,比如

一个学生类

image.png

在转将 student model 转成 json 的时候,不想将 id 也放进去,基于类似的这种情况,该怎么利用 json 转换工具去实现。

评论区

杜福忠

2017-08-30 10:42

Model 拥有这些功能:

/**
* Remove attributes of this model.
* @param attrs the attribute names of the model
* @return this model
*/
public M remove(String... attrs) {
if (attrs != null)
for (String a : attrs) {
this.attrs.remove(a);
this.getModifyFlag().remove(a);
}
return (M)this;
}

/**
* Keep attributes of this model and remove other attributes.
* @param attrs the attribute names of the model
* @return this model
*/
public M keep(String... attrs) {
if (attrs != null && attrs.length > 0) {
Config config = getConfig();
Map newAttrs = config.containerFactory.getAttrsMap(); // new HashMap(attrs.length);
Set newModifyFlag = config.containerFactory.getModifyFlagSet(); // new HashSet();
for (String a : attrs) {
if (this.attrs.containsKey(a)) // prevent put null value to the newColumns
newAttrs.put(a, this.attrs.get(a));
if (this.getModifyFlag().contains(a))
newModifyFlag.add(a);
}
this.attrs = newAttrs;
this.modifyFlag = newModifyFlag;
}
else {
this.attrs.clear();
this.getModifyFlag().clear();
}
return (M)this;
}

杜福忠

2017-08-30 10:45

json 转换工具 最好使用:
/**
* IJsonFactory 的 jfinal 实现.
*/
public class JFinalJsonFactory implements IJsonFactory {

private static final JFinalJsonFactory me = new JFinalJsonFactory();

public static JFinalJsonFactory me() {
return me;
}

public Json getJson() {
return new JFinalJson();
}
}

JFinal

2017-08-30 11:41

如果你用的是 jfinal 的 model就好办了,用一下这两个便捷方法:
1:model.keep(x, y, ...) 只保留指定的属性
2:model.remove(x, y, ...) 只去除指定的属性

l745230

2017-08-31 09:50

一般来说,如果不是敏感字段,我都是把整个model丢给前端,如果包含敏感字段,那也是定义个Map,把需要的值放进去传给前端

lantsui

2017-08-31 15:18

@JFinal 是jfinal的model,因为现在想处理将结果返回到前台去,要想怎么样去封装这个json,因为里面可能含有一对多的关系

lantsui

2017-08-31 15:18

@杜福忠 和波总说的是一样

lantsui

2017-08-31 15:19

@l745230 是的,我想看看有没比较搞笑的方法去处理,因为如果字段多或者包含了一对多的关系的话,有时候重复写这些东西会繁琐

JJfinal

2018-01-18 19:21

如果数据不多的话 可以放在Map里面

热门反馈

扫码入社