【发布时间】:2018-02-19 16:18:41
【问题描述】:
我是 android 开发的新手,我正在尝试从 android 列表中获取 JSONArray。 (我需要一个 org.json.JSONArray 所以我不能用 Gson 来做)。
我试图在 SO 上找到这个并找到了一个很好的解决方案 here。
到目前为止,我能够部分实现这一点(对于字符串和整数值)。但我的列表中有一个 String[] 值。如何在 JSONObject 中转换它?
这是我如何实现我的代码来转换 JSONArray:
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < modifiedList.size(); i++) {
jsonArray.put(modifiedList.get(i).getJSONObject());
}
这是我的对象类中的 getJSOnObject 方法实现:
public JSONObject getJSONObject() {
JSONObject obj = new JSONObject();
try {
obj.put("chat_id", ""+chat_id);
obj.put("latest_chat_message", ""+latest_chat_message);
obj.put("user_id", ""+user_id);
obj.put("business_id", ""+business_id);
obj.put("chatting_user_id", ""+chatting_user_id);
obj.put("latest_chat_fullname",""+ latest_chat_fullname);
obj.put("latest_chat_user_id", ""+latest_chat_user_id);
obj.put("chat_title", ""+chat_title);
obj.put("views", ""+views);
obj.put("created_on1", ""+created_on1);
obj.put("created_on",""+ created_on);
obj.put("chat_image", ""+chat_image);
obj.put("chat_comment", ""+chat_comment);
obj.put("chat_notification", ""+chat_notification);
obj.put("chat_expiry", ""+chat_expiry);
obj.put("del_in", ""+del_in);
obj.put("customer_id", ""+customer_id);
obj.put("customer_fullname", ""+customer_fullname);
obj.put("customer_photo", ""+customer_photo);
// obj.put("business_images", business_images);
// obj.put("user_names", user_names);
obj.put("isFav", ""+isFav);
// obj.put("user_images", user_images);
obj.put("isRead", ""+isRead);
} catch (JSONException e) {
}
return obj;
}
这里 "business_images", "user_names" 是 string[] 所以这将返回 [Ljava.lang.String;@596ef8d 类型的地址值而不是值所以问题是我怎样才能得到这个值而不是地址?
编辑:
这些解决方案都不适合我,因为 Arrays.tostring(String[]) 返回 String 而不是 String[]
所以 for 循环解决了我的问题,这就是我的实现方式:
JSONArray userNames = new JSONArray();
for (String user_image : user_images) {
userImages.put(user_image);
}
obj.put("user_images", userImages);
【问题讨论】:
-
尝试删除
""+部分,您不需要将内容转换为字符串 -
你可以使用
obj.put("business_images", Arrays.toString(business_images) );