我有一个Java对象,如下所示
public class Command {
private String cmd;
private Object data;
}
我希望此Object的JSON转换如下所示
{"cmd":"getorder","data":{"when":"today"}}
如何在不更改类定义的情况下执行此操作?
我知道如何使用GSON或Jackson库。我无法为上面的值分配或初始化(对象)数据,因此当我使用这些库时,它正确地转换为{“when”:“today”}。
谢谢
答案 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/)。