Android JSON解析引发意外异常 资料来源:

Android JSON解析引发意外异常 资料来源:,android,arrays,json,Android,Arrays,Json,如有任何建议,我们将不胜感激 价值观: 日志: 1-21 21:15:40.775 23532-23532/com.example.examplemobile W/System.err:org.json.JSONException:java.lang.String类型的值Johnny无法转换为JSONArray 11-21 21:15:40.775 23532-23532/com.example.examplemobile W/System.err:at org.json.json.typemi

如有任何建议,我们将不胜感激

价值观: 日志:
1-21 21:15:40.775 23532-23532/com.example.examplemobile W/System.err:org.json.JSONException:java.lang.String类型的值Johnny无法转换为JSONArray
11-21 21:15:40.775 23532-23532/com.example.examplemobile W/System.err:at org.json.json.typemissmatch(json.java:111)
11-21:15:40.785 23532-23532/com.example.examplemobile W/System.err:at org.json.JSONArray.(JSONArray.java:96)
11-21:15:40.785 23532-23532/com.example.examplemobile W/System.err:at org.json.JSONArray.(JSONArray.java:108)

我认为您需要将字符串JSON
intent.getStringExtra(“chatData”)
转换为JSON数组

也许这个链接能帮上忙

我认为您需要将字符串JSON
intent.getStringExtra(“chatData”)
转换为JSON数组

也许这个链接能帮上忙

您试图将
字符串
解析为
JSONArray
,这就是它抛出异常的原因。为了将其解析为JSONArray,必须有如下数据:
{“message”:[“String1”、“String2”、“String3”]}


messagesArr
变量更改为字符串,然后通过调用
messagesArr=item.getString(“message”)访问“message”字符串

您试图将
字符串
解析为
JSONArray
,这就是它抛出异常的原因。为了将其解析为JSONArray,必须有如下数据:
{“message”:[“String1”、“String2”、“String3”]}


messagesArr
变量更改为字符串,然后通过调用
messagesArr=item.getString(“message”)访问“message”字符串

从您在评论中提供的json字符串中,它不是有效的json字符串

[{"type":"agent","message":"User has joined the chat.","created":"2016-11-21 21:40:31","name":"User"},{"type":"agent","message":"example message,"created":"2016-11-21 21:40:36","name":"User"},{"type":"agent","message":"User has left the chat.","created":null,"name":"User"}]
示例消息

尝试将json字符串更改为

[
  {
    "type": "agent",
    "message": "User has joined the chat.",
    "created": "2016-11-21 21:40:31",
    "name": "User"
  },
  {
    "type": "agent",
    "message": "example message",
    "created": "2016-11-2121: 40: 36",
    "name": "User"
  },
  {
    "type": "agent",
    "message": "Userhasleftthechat.",
    "created": null,
    "name": "User"
  }
]

请告诉我您在评论中提供的json字符串的结果,它不是有效的json字符串

[{"type":"agent","message":"User has joined the chat.","created":"2016-11-21 21:40:31","name":"User"},{"type":"agent","message":"example message,"created":"2016-11-21 21:40:36","name":"User"},{"type":"agent","message":"User has left the chat.","created":null,"name":"User"}]
示例消息

尝试将json字符串更改为

[
  {
    "type": "agent",
    "message": "User has joined the chat.",
    "created": "2016-11-21 21:40:31",
    "name": "User"
  },
  {
    "type": "agent",
    "message": "example message",
    "created": "2016-11-2121: 40: 36",
    "name": "User"
  },
  {
    "type": "agent",
    "message": "Userhasleftthechat.",
    "created": null,
    "name": "User"
  }
]

让我知道结果

什么异常?您的JSON没有数组,它看起来像JSONObjectNote-当更改为messagesArr=newJSONObject(item.getString(“message”))时;我得到以下错误:org.json.JSONException:java.lang.String类型的值无法转换为JSONObject logging intent.getStringExtra(“chatData”)打印出什么?您确定Intent.putExtra()正在输入有效的JSON吗?+1@iNan@droidthusiast:您的日志猫说java.lang.String类型的
值Johnny无法转换为JSONArray
,这意味着要么您获取了错误的json数据,要么您将json数据字符串读取为数组。什么异常?您的json没有数组,它看起来像JSONObjectNote-当更改为messagesArr=new JSONObject(item.getString(“message”)时); 我得到以下错误:org.json.JSONException:java.lang.String类型的值无法转换为JSONObject logging intent.getStringExtra(“chatData”)打印出什么?您确定Intent.putExtra()正在输入有效的JSON吗?+1@iNan@droidthusiast:您的日志猫说java.lang.String类型的
值Johnny无法转换为JSONArray
,这意味着您要么获取了错误的json数据,要么将json数据字符串读取为数组。
[{"type":"agent","message":"User has joined the chat.","created":"2016-11-21 21:40:31","name":"User"},{"type":"agent","message":"example message,"created":"2016-11-21 21:40:36","name":"User"},{"type":"agent","message":"User has left the chat.","created":null,"name":"User"}]
[
  {
    "type": "agent",
    "message": "User has joined the chat.",
    "created": "2016-11-21 21:40:31",
    "name": "User"
  },
  {
    "type": "agent",
    "message": "example message",
    "created": "2016-11-2121: 40: 36",
    "name": "User"
  },
  {
    "type": "agent",
    "message": "Userhasleftthechat.",
    "created": null,
    "name": "User"
  }
]