我使用下面的代码(从 mysql 检索数据),它在 android 模拟器版本 4 中运行没有问题,但是当我在 2.1 版本中使用相同的代码时,结果出现在 logcat
这是错误:
parssing error org.json.JSONException: A JSONArray text must start with '[' at character 1 of <br />
这是使用 2.2 parsingorg.json.JSONException 时的错误:java.lang.String 类型的值无法转换为 JSONArray
protected Void doInBackground(Void... params) {
MealActivity.foodList = new ArrayList<ItemInList>();
try
{
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair",k));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/y.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
HttpResponse response = httpclient.execute(httppost);
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());
}
//parsing reesult
try{
Log.e("log_tag", " result before parsing " + result);
String foodName="";
int Description=0;
jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
if(json_data!=null )
{
foodName=json_data.getString("Food");
Description=json_data.getInt("Calories");
item.setName(foodName);
item.setDescription(Description);
item.setSelected(false);
MealActivity.foodList.add(item);
item=new ItemInList();
}
}