以下のコードを使用して( mysql からデータを取得するため)、Androidエミュレーターバージョン4で問題なく実行されますが、バージョン2.1で同じコードを使用すると、結果がlogcatに表示されます
これはエラーです:
parssing error org.json.JSONException: A JSONArray text must start with '[' at character 1 of <br />
これは、2.2 parssingorg.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();
}
}