Android JSONObject捕获异常
亲爱的,我是Android新手,Json有个问题,这是我的代码。。。我调试它,一切都很好,但当它到达这个位置时,它跳到了捕捉块Android JSONObject捕获异常,android,json,Android,Json,亲爱的,我是Android新手,Json有个问题,这是我的代码。。。我调试它,一切都很好,但当它到达这个位置时,它跳到了捕捉块 jArray = new JSONObject(result); 所以它的返回为空 public class JSONfunctions { public static JSONObject getJSONfromURL(String url){ InputStream is = null; String result = "
jArray = new JSONObject(result);
所以它的返回为空
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;
}
}
我猜JSON需要的是数组而不是对象 尝试: 不是 按如下方式记录错误:
Log.e("log_tag", "Error parsing data ", e);
你会得到关于你的问题所在的更详细的描述
在解析结果之前,请先注销结果,检查其是否为有效的json字符串,如果您的Sring以这些括号开始,则可能不是
[ ]
然后使用JSONArray
或
如果字符串以这些括号开头,则应使用JSONObject
我认为这是该地区否则的反应是不提交然后尝试代替
HttpGet httpget = new HttpGet(url);
替换
HttpPost post=new HttpPost(url);
替换此项,因为JSONObject未转换为JSONArray
jArray = new JSONArray(result);
这可能会对您有所帮助。如下所示进行分析
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");
}
JSONObject mainJSON=new JSONObject();
JSONArray jsonMainArr=mainJSON.getJSONArray(“结果”);
for(int i=0;i
希望这对您有所帮助。显示结果Stringplz发布您从服务器获得的json字符串打印字符串结果,并粘贴到此处。这是结果[{“CompletionStatus”:2,“ContactMobile”:“962799407083”,“ContactPerson”:“William Erwin”,“Description”:“AS”,“Details”:“Testy CCCC”,“ScheduledDate”:“\/Date”(135690120000+0300)\/,“WorkOrderID”:206}]我的服务是HttpGet,不是post,我会试试JsonArray,我在理解如何解析Json方面有一些问题,你能帮我找到一个技巧吗……我会很感激:)有时候HttpGet不起作用,但在你的情况下它起作用了。。要检查JsonFormate是否正确,只需使用Jsonlint.com&它将从jArray=newjsonarray(result)解析;
jArray = new JSONArray(result);
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");
}