如何个性化输出json?

假如查询出一个List<Model>之后:

  1. 如何选择输出Model中的某几个属性为json,以及自定义他们的keyName,比如下划线转为驼峰,或驼峰转下划线,或其他自定义。

  2. 例如我想将Model中所有的字段用root1根括起来。另外,再加一个root2根,每个Model都为固定的ADD字符应该怎么弄,如:



[
...
  {
    "root1": {
      "key1": "value1",
      "key2": "value2",
      ...
    },
    "root2": "ADD"
  },
  {
    "root1": {
      "key1": "value1",
      "key2": "value2",
      ...
    },
    "root2": "ADD"
  }
...
]



评论区

5156943

2017-02-17 11:31

@JFinal 波总帮忙看看

JFinal

2017-02-17 11:39

想要限制model 中输出的字段,可以在查询的时候在 sql 中指令只查出什么,例如:
find("select id, nickName from user where....")
还可以通过使用 model.keep(...) 与 model.remove(...) 方法保持住或者移除不希望转换为 json 的属性

下划线转驼峰建议是直接将数据表字段弄成驼峰,少很多事,具体可以看一下 jfinal-club项目

想要在model 中自由整合很多其它属性,用一下 model.put(key, value) 就好

5156943

2017-02-17 11:41

@JFinal 多谢,我试试看。

5156943

2017-02-17 11:57

@JFinal model.put是加到属性里面去了,有什么办法能把查询出来的属性用root1这个根包起来,再增加一个root2根,里面的值是固定的

JFinal

2017-02-17 12:07

@5156943 使用 JMap 去拼装这些,形如:
JMap map = JMap.create("root1", ...).set("root2", ...);
renderJson(map);

5156943

2017-02-17 12:20

成功了,谢谢 @JFinal

JFinal

2017-02-17 12:21

@5156943 学得还挺快,一点就通,有潜力

5156943

2017-02-17 13:14

@JFinal 哈哈 波总谬赞了

热门反馈

扫码入社