我下面的代码是使用 Java 的 URLConnection 来 ping 一个 RESTful API,它会返回一个 JSON 字符串。我返回的 JSON 字符串似乎完全有效,但在 JSONLint 和下面的最后一行代码中都失败了。
返回的 JSON 是:
{“rowId”:“1-12C-1494”}
错误信息是:
第 2 行的解析错误:...rowId": "1-12C-1494" ------------------------------------^ 期待 '}', ': ', ',', ']'
代码是:
StringBuilder responseBuilder = new StringBuilder();
URLConnection connection = url.openConnection();
InputStream cin = connection.getInputStream();
int bytesRead = -1;
byte[] buffer = new byte[1024];
while ((bytesRead = cin.read(buffer)) >= 0) {
responseBuilder.append(new String(buffer, "UTF-8"));
}
String response = responseBuilder.toString();
JsonObject jsonObject = new JsonParser().parse(response).getAsJsonObject();
如果我从浏览器 ping RESTful API 并将那里的 JSON 复制到 JSONLint 中,它验证就好了。我能说的最好的就是某种字符/空格编码问题。有没有其他人遇到过它并有任何指导?谢谢!