以下の私のコードは、JavaのURLConnectionを使用して、JSON文字列を返すRESTfulAPIにpingを実行しています。返される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();
ブラウザからRESTfulAPIにpingを実行し、そこにあるJSONをJSONLintにコピーすると、正常に検証されます。私がこれを伝えることができる最善の方法は、ある種の文字/空白のエンコーディングの問題です。他の誰かがそれに遭遇し、何かガイダンスがありますか?ありがとう!