Java对象到JSON的转换

Java对象到JSON的转换,java,json,Java,Json,我有一个Java对象,如下所示 public class Command { private String cmd; private Object data; } 我希望这个对象的JSON转换如下所示 {"cmd":"getorder","data":{"when":"today"}} 如何在不更改类定义的情况下执行此操作 我知道如何使用GSON或Jackson图书馆。我在为上面的(对象)数据赋值或初始化数据时遇到问题,因此当我使用这些库时,它会正确地转换为{“whe

我有一个Java对象,如下所示

    public class Command {
    private String cmd;
    private Object data;
}
我希望这个对象的JSON转换如下所示

{"cmd":"getorder","data":{"when":"today"}}
如何在不更改类定义的情况下执行此操作

我知道如何使用GSON或Jackson图书馆。我在为上面的(对象)数据赋值或初始化数据时遇到问题,因此当我使用这些库时,它会正确地转换为{“when”:“today”}

谢谢你可以试试 它非常容易使用,而且还可以进行反向操作

您可以试试
它非常容易使用,它也可以做反向操作,

,根据您的需要,您可以考虑为您的类添加一个手写JSON格式化程序(这样就干扰了您不改变类定义的需求),但实际上它在没有第三方依赖的情况下提供了最大的灵活性。如果您严格地让所有对象覆盖toString(),以提供json格式的字符串表示,您可以

String toString() {
    StringBuffer result = new StringBuffer();
    result.add("{ \"cmd\":" + this.cmd);
    result.add(",");
    result.add( \"data\":" + data.toString());
    result.add("}");
    return result.toString();
}

如果您不需要更改类定义,比前面提到的AdvANTEGES显得更重要。在CDE.GoGoLeWeb上有一个很好的JSON库,名为“简单JSON”().< /P> < P>根据您的需要,您可以考虑为您的类添加一个手写JSON格式化程序。(当然,这会干扰您不更改类定义的要求),但事实上,它在没有第三方依赖的情况下为您提供了最大的灵活性

String toString() {
    StringBuffer result = new StringBuffer();
    result.add("{ \"cmd\":" + this.cmd);
    result.add(",");
    result.add( \"data\":" + data.toString());
    result.add("}");
    return result.toString();
}

如果您不需要更改类定义似乎比上述优点更重要,那么code.google.com上有一个名为“simple json”(简单json)的json库.

查看GSON或Jackson的object-to-JSON映射工具。或者你可以直接重写toString并手动执行。大量在线示例。编写一个方法。然后访问JSON.org学习JSON语法。学习只需5-10分钟,如果你这样做,这些东西会更有意义。我正在使用Jackson。问题不是这样。我没有麻烦将其转换为json。问题是如何为数据赋值,使其转换为“when”:“today”您将使
data
成为映射
{“when”:“today”}
。你可以做一个自定义类,但为什么要用更多的小类污染你的应用程序呢?看看GSON或Jackson的object-to-JSON映射工具。或者你可以覆盖toString并手动完成。在线上有大量的示例。写一个方法。然后去JSON.org学习JSON语法。只需5-10分钟就可以学会如果你这样做的话,会更有意义。我使用的是Jackson。问题不是那样。我在将其转换为json时没有遇到任何问题。问题是我如何为数据赋值,以便它转换为“何时”:“今天”你将使
数据
成为地图
{“何时”:“今天”}
。你可以改为自定义类,但为什么要用更多的小类污染你的应用程序呢?