0

我尝试转换通过反射生成的类对象并将它们转换为 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]]预期结果。

我犯了什么错误。

请纠正我。

4

1 回答 1

1

如果您注意到您的输出,您可以看到[[双方括号),这意味着JSONSerializer已经将其转换为JSONArray. 因此,您无需手动再次执行此操作。

而关于null他们之间,那是因为你正在传递nullconvertPlainObjectToJSON. 发送一个新创建的对象数组(正如@MvG提到的),new Object[0]你会得到你想要的!

永远记住,blanknull不一样!

于 2013-04-29T10:21:48.940 回答