您好我正在尝试解析字符串并将其转换为JSONObject
。但它没有转换并给出错误,如
"07-28 11:36:47.674: WARN/System.err(6050): org.json.JSONException: Unterminated string at character 3136 of {"data":[{""...."(there is my data)
首先我认为有一些特殊字符,例如~,@,%,&
,并用" "
替换字符,但没有结果并给出相同的错误。
我通过UTF-8
格式编码修改了Web服务数据。我使用代码来解码我的应用程序中的UTF-8
格式化数据。这是我的代码:
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
params.setBooleanParameter("http.protocol.expect-continue",false);
HttpClient httpclient = new DefaultHttpClient(params);
HttpGet httpget =new htpGet("http://www.mylink.com"+todaydate);
try
{
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
jsonText = EntityUtils.toString(entity, HTTP.UTF_8);
Log.d("TEST", jsonText); /this is the result string
}
catch (Exception e)
{
}
JSONObject jObj = new JSONObject(jsonText.toString());
此处我无法将字符串(jsonText
)转换为json object(jobj)
。但在 logcat 中,它完全显示字符串jsonText
。是否有任何建议将数据作为json对象。
我需要在我的应用程序中使用Json object
。
答案 0 :(得分:0)
如果您确定JSON数据有效并且没有特殊字符导致问题,那么“字符未终止字符串”可能意味着您没有收到整个字符串。
您可以通过检查结尾的子字符串并在logcat中显示它来证明这一点
如果没有,那么你需要再次开始寻找特殊字符