JSON - 将对象转换为JSON数组
问题描述:
我尝试转换通过反射生成的类对象并将它们转换为JSON字符串。以下是我的方法JSON - 将对象转换为JSON数组
public Object creatObjectAsString(String className) {
Object objects = null;
try {
objects = java.lang.reflect.Array.newInstance(Class.forName(className), 1);
//System.out.println(objects.toString());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return objects ;
}
public String convertPlainObjectToJSON(Object obj,boolean isArray){
String jsonString="",tempJSON="";
JSONSerializer serializer = new JSONSerializer();
tempJSON = serializer.serialize(obj);
if(isArray){
jsonString="["+tempJSON+"]";
}else{
jsonString=tempJSON;
}
return jsonString;
}
我已经硬编码以下行,因为我不知道如何创建JSON阵列中,不编程的正确途径。
if(isArray){
jsonString="["+tempJSON+"]";
}else{
jsonString=tempJSON;
}
当我印刷方法I得到以下[[null]]
未预期的结果convertPlainObjectToJSON
。
我犯的错误是什么。
请纠正我。
答
如果您发现您的输出,你可以看到[[
(双方括号),这意味着JSONSerializer
已经它转换为JSONArray
。因此,您不需要再手动执行操作。
而关于他们之间的null
,这是因为你通过null
到convertPlainObjectToJSON
。发送一个新创建的对象数组(,如@MvG提到),new Object[0]
,你会得到你想要的!
永远记得blank
和null
是不一样的!
为什么不尝试使用[Gson](http://code.google.com/p/google-gson/)? – SudoRahul 2013-04-29 07:15:07
我也看到,但我的情况是不同的,我使用反射创建对象,并将对象转换为JSON或JSON数组。 – 2013-04-29 07:16:10
如果你注意到你的输出,你可以看到'[[''双方括号,这意味着'JSONSerializer'已经将它转换为'JSONArray'。你不需要手动做。并且regd'null',确保你传递给'convertPlainObjectToJSON'方法的'obj'不为null。 – SudoRahul 2013-04-29 07:19:27