在Android上将对象数组转换为JSON字符串

时间:2014-02-11 16:31:21

标签: android arrays json

我似乎无法在任何地方找到这个,但很多人必须这样做。

我有一个对象数组,我想将其转换为JSON字符串并发布到REST URL。这是我到目前为止所做的:

    if(history==null||history.length == 0){
        return new String[0];
    }

    JSONArray array = new JSONArray();
    for(DeviceHistory connectHistory:history){
        array.put(connectHistory);
    }

    JSONObject response = jsonClient.remoteCall(SERVICE_NAME, array.toString());

问题是我得到[“com.abc.model.connect.DeviceHistory@41e63298”,“com.abc.model.connect.DeviceHistory@41e63760”,“com.abc.model.connect.DeviceHistory@41e63c28来自array.toString()的“,”com.abc.model.connect.DeviceHistory@41e640f0“]。我做错了什么?

2 个答案:

答案 0 :(得分:2)

您的问题是您没有将对象作为String传递,因此您在JSON中编写的内容是对对象的引用。

如果可以或只是使用它,您应该在该类中实现toString()方法。但是,如果你不能使用辅助方法来实现它。

答案 1 :(得分:2)

因为这是Object.toString()的结果。您可以尝试:

https://code.google.com/p/google-gson/

此库允许将Object转换为JSON并返回。