我尝试转换通过Reflection生成的类对象并将它们转换为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;
}
当我打印方法的convertPlainObjectToJSON
结果时,我得到以下[[null]]
这是不期望的。
我犯的错误是什么。
请纠正我。
答案 0 :(得分:1)
如果您注意到自己的输出,则可以看到[[
(双方括号),这意味着JSONSerializer
已将其转换为JSONArray
。因此,您无需手动再次执行此操作。
关于他们之间的null
,这是因为您将null
传递给convertPlainObjectToJSON
。发送一个新创建的对象数组(提到@MvG ),new Object[0]
,你会得到你想要的!
永远记住blank
和null
不一样!