JSON - 将对象转换为JSON数组

时间:2013-04-29 07:13:11

标签: java json serialization

我尝试转换通过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]]这是不期望的。

我犯的错误是什么。

请纠正我。

1 个答案:

答案 0 :(得分:1)

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

关于他们之间的null,这是因为您将null传递给convertPlainObjectToJSON。发送一个新创建的对象数组(提到@MvG ),new Object[0],你会得到你想要的!

永远记住blanknull不一样!