Java对象到JSON转换

时间:2014-09-26 18:46:03

标签: java json

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

    public class Command {
    private String cmd;
    private Object data;
}

我希望此Object的JSON转换如下所示

{"cmd":"getorder","data":{"when":"today"}}

如何在不更改类定义的情况下执行此操作?

我知道如何使用GSON或Jackson库。我无法为上面的值分配或初始化(对象)数据,因此当我使用这些库时,它正确地转换为{“when”:“today”}。

谢谢

2 个答案:

答案 0 :(得分:2)

您可以尝试Gson library 它非常易于使用,也可以进行反向操作

答案 1 :(得分:2)

根据您的需要,您可能会考虑为您的类添加一个手写的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();
}

如果您不需要更改类定义似乎比上面提到的更重要,那么在code.google.com上有一个很好的json库,名为“simple json”(https://code.google.com/p/json-simple/)。