我试图从String创建一个新的JSONObject但是由于某种原因,新的JSONObject始终为null - 我不确定为什么。
任何建议都表示赞赏。
JSONObject messagesObj;
String mArr = intent.getStringExtra("msgArr");
try {
if (mArr != null)
messagesObj = new JSONObject(mArr);
if (messagesObj != null)
populateMessages(messagesObj);
DataManager.clientChatMarkMessagesSeen(chatId);
} catch (JSONException e) {
// DataManager.clientChatLoad(this);
e.printStackTrace();
}
String mArr = [{"message":"User has joined the chat.","type":"agent","created":"2016-12-07 17:35:09","name":"User"},{"message":"Hello World?","type":"agent","created":"2016-12-07 17:35:17","name":"User"},{"message":"User has left the chat.","type":"agent","created":"2016-12-07 17:38:40","name":"User"}]
答案 0 :(得分:3)
因为那不是一个json对象 - 它是一个JSONArray。尝试创建JSONArray而不是JSONObject
答案 1 :(得分:0)
字符串是json数组而不是object ..请看根节点不是{}
像这个对象数组一样修改字符串
String mArr = {“results”:[{“message”:“用户已加入聊天。”,“类型”:“代理”,“已创建”:“2016-12-07 17:35:09” ,“name”:“User”},{“message”:“Hello World?”,“type”:“agent”,“created”:“2016-12-07 17:35:17”,“name”: “用户”},{“消息”:“用户已离开聊天。”,“类型”:“代理”,“已创建”:“2016-12-07 17:38:40”,“名称”:“用户“}]}
答案 2 :(得分:0)
使用JSONArray array = new JSONArray(“string here”)。如果它以方括号开头,则为数组。