我正在尝试从Web服务解析JSON。但我得到“字符串无法转换为Json对象”错误。
我的json:{"encoding":"UTF-8","yorumlar":[["dogukan","deneme yorumu"],["Burak","yorum"]]}
我得到这个字符串如下;
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = new HttpGet(url);
HttpResponse response = null;
try
{
response = client.execute(request);
String jsonString = StreamUtils.convertToString(response.getEntity().getContent());
JSONObject json = new JSONObject(jsonString);
.
.
.
当我从上面的网络服务获得此字符串时,我收到此错误但是当我这样做时:
JsonObject object = new JsonObject("{\"encoding\":\"UTF-8\",\"yorumlar\":[[\"dogukan\",\"deneme yorumu\"],[\"Burak\",\"yorum\"]]}")
我没有收到此错误。所以,字符串是相同的,json格式是可以的。有什么问题?
答案 0 :(得分:0)
我解决了这个问题,json字符串以这些字符开头“”。但这些字符不会出现在调试模式下。我创建了一个java项目。我从服务器获得了json字符串。我在调试模式下看到了这些字符。 Java项目给了我更多关于转换错误的细节。
如果您尝试在调试模式下获取这些值:
jsonString.toCharArray()[0]和jsonString.toCharArray()[1]
您会看到值为“”,而不是“{”。这不是空间,但不会出现。和“{”字符位于2. index。
我们已经解决了服务器端的问题。我猜这是一个页面编码问题。