【发布时间】:2017-08-13 03:49:59
【问题描述】:
以下是我收到的 API 请求的 JSON 响应。
用户 = { '名称':'湿婆', '地址':'我的地址', '密码':12345, '网址':'http://myweb.com/index.php?title=firstname:lastname+middlename&action=edit' }
由于此 JSON 响应以 user = 开头,因此它既不是 JSONObject 也不是 JSONArray。 所以我认为这是字符串,我拆分响应
String[] response = responseBody.split("=");
Gson gson = new GsonBuilder().setLenient().create();
User user = gson.fromJson(response[1], User.class);
这会导致如下所示的 MalformedJsonException
原因:com.google.gson.stream.MalformedJsonException: Unterminated string at line 5 column 47 path $.url
我观察到 url 键的值会导致问题。因为它在 url 值中有 = 和 : 字符。但我没有找到合适的解决方案。
谁能帮我解决这个问题。
【问题讨论】:
-
我一头雾水,song=是什么意思,即使不是JsonObject,也要解析成Json对象。从长远来看,这将使您的生活更轻松。
-
@Bqin,这是我的拼写错误。更新了帖子。请检查一下。
-
创建一个与上述参数匹配的类,并使用 jsonParse(string value, object.class) 映射 Json 对象,这将使事情变得更容易
-
您的 JSON 无效。您必须在后端代码中更改您的响应。并使用
:而不是=。 -
@SajidhZahir,您能否提供一个带有 jsonParse(string value, object.class) 的示例。我很困惑,如何处理。
标签: android json gson retrofit