【发布时间】:2014-09-14 14:55:50
【问题描述】:
我们如何在 NINJA FRAMEWORK 控制器中返回 JSON 时返回自定义格式的 JSON。
return Results.json().render(MyPOJO);
我的POJO类
@Entity
public class MyPOJO {
private String Name;
private String Value;
public String getName() {
return Name;
}
public void setName(String Name) {
this.Name = Name;
}
public String getValue() {
return Value;
}
public void setValue(String Value) {
this.Value = Value;
}
}
当前 JSON 输出
[{"Name":"Person1", "Value":"Value1"}, {"Name":"Person2", "Value":"Value2"}]
自定义 JSON 输出(必需)
[{"1":"Person1", "2":"Value1"}, {"1":"Person2", "2":"Value2"}]
【问题讨论】:
-
你为什么需要这个? json
[字符已经表明里面是一个数组,所以你只需要获取它的索引。另外,这样做会使您的 json 结果变成无效的 json 对象,这可能会在将来给您带来问题 -
亲爱的 Jorge,所需的输出是数据表 (www.datatables.net) 的标准 json 输入。此外,当我获取大量记录时,删除键并替换为索引大大减少了我的网络使用量。我也通过 jsonlint.com 验证了我的输出,格式正确有效。
-
对不起,我看错了你的 json 输出。我正在阅读
{"1":"Name":"Person1", "2":"Value":"Value1"},好像“1”表示该数据的索引。是的,你是对的,这是一个有效的 Json 对象。在这种情况下,您需要做的是使用 ObjectMapper 并实现 CustomSerializer。由于 Ninja FrameWork 使用 Jackson。在这里查看:wiki.fasterxml.com/JacksonFeatureModules -
看到这个帖子,也许它会有所帮助:stackoverflow.com/questions/7161638/…
标签: java json ninjaframework