亲爱的我是Android新手,我在Json有问题这里是我的代码...我调试它,一切都很好但是当它达到这个声明时它跳到了catch块
jArray = new JSONObject(result);
所以它返回null ...
public class JSONfunctions {
public static JSONObject getJSONfromURL(String url){
InputStream is = null;
String result = "";
JSONObject jArray = null;
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
try{
jArray = new JSONObject(result);
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
return jArray;
}
}
答案 0 :(得分:2)
替换它,因为JSONObject未转换为JSONArray
jArray = new JSONArray(result);
这可能对你有帮助。
答案 1 :(得分:0)
我猜你需要一个数组而不是你的JSON的对象。
尝试:
jArray = new JSONArray(result);
不
jArray = new JSONObject(result);
按如下方式记录您的错误:
Log.e("log_tag", "Error parsing data ", e);
您将获得有关问题的内容和位置的更详细说明
答案 2 :(得分:0)
注销你的结果,然后解析它以检查是否是一个有效的json字符串,也许不是
答案 3 :(得分:0)
如果您的Sring以这些括号开头
[ ]
然后使用JSONArray
或
如果String以这些括号{}
开头,那么JSONObject
应该使用。
我认为这个区域的反应不会响应然后尝试代替
HttpGet httpget = new HttpGet(url);
替换
HttpPost post=new HttpPost(url);
答案 4 :(得分:0)
解析如下所示
JSONObject mainJSON = new JSONObject();
JSONArray jsonMainArr = mainJSON.getJSONArray("result");
for (int i = 0; i < jsonMainArr.toArray().length; i++) {
JSONObject childJSONObject = jsonMainArr.getJSONObject(i);
String CompletionStatus= childJSONObject.getString("CompletionStatus");
String ContactMobile= childJSONObject.getString("ContactMobile");
}
希望这会帮助你。