我是Android开发的新手,正在尝试从Android List中获取JSONArray。(我需要一个org.json.JSONArray,所以无法使用Gson)。
我已经在Stack Overflow上找到了一个很好的解决方案here。
到目前为止,我只能部分地实现(对于字符串和整数值)。但是我的List中有String[]值。如何将其转换为JSONObject?
这是我实现代码转换JSONArray的方式:
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < modifiedList.size(); i++) {
jsonArray.put(modifiedList.get(i).getJSONObject());
}
这是我的Object类中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”是字符串[],因此它将返回类似于[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);
""+
部分,您不需要将事物转换为字符串。 - zaplobj.put("business_images", Arrays.toString(business_images) );
。 - Pavneet_Singh