Я разрабатываю приложение объекта JSON, которое возвращает данные в ListView.
В этом параметре необходимо передать Uid пользователя.
Мой код для асинхронности:
class AsyncCallWebServicereceiveHistory extends AsyncTask<String, String, String>
{
ProgressDialog progressDialog;
@Override
protected void onPreExecute()
{
super.onPreExecute();
progressDialog = new ProgressDialog(ReceiveHistory.this);
progressDialog.setTitle("Loading");
progressDialog.setMessage("Please wait");
progressDialog.setCancelable(false);
progressDialog.setIndeterminate(true);
progressDialog.show();
}
@Override
protected String doInBackground(String... aurl)
{
Log.v("receiveHistory","Do in BG-1");
uid=global.get_user_id();
try
{
HttpPost postMethod = new HttpPost("http://demo1.idevtechnolabs.com/RChatAPI/receive_history.php");
List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("uemail", uid));
BufferedReader bufferedReader = null;
HttpClient client = new DefaultHttpClient();
HttpResponse response = null;
response = client.execute(postMethod);
final int statusCode = response.getStatusLine().getStatusCode();
Log.v("Album ::","Response:::--->"+response.toString());
Log.v("Album ::","Status Code:::--->"+statusCode);
bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer stringBuffer = new StringBuffer("");
String line = "";
String LineSeparator = System.getProperty("line.separator");
while ((line = bufferedReader.readLine()) != null)
{
stringBuffer.append(line + LineSeparator);
}
bufferedReader.close();
//-------------CONVERT DATA TO JSON---------------------------------
try
{
String myjsonstring = stringBuffer.toString();
JSONArray jsonArray = new JSONArray(myjsonstring);
JSONObject jsonObj = null;
jsonObj = jsonArray.getJSONObject(0);
code = jsonObj.getString("code");
receiveMsgData.clear();
Log.v("Home ::","Code:::--->"+code);
code="0";
if(code.equals("0"))
{
for(int i=0; i<jsonArray.length();i++)
{
jsonObj = jsonArray.getJSONObject(i);
uname=jsonObj.getString("name");
uage = jsonObj.getString("age");
usex = jsonObj.getString("sex");
body = jsonObj.getString("country");
text= jsonObj.getString("text");
HashMap<String, String> tmp_album = new HashMap<String, String>();
tmp_album.put("receive_data", "Text");
Log.v("receive History","receive Data");
receiveMsgData.add(tmp_album);
}
}
catch (Exception e)
{
Log.v("Home ::","Call JSON Exception in get Album in List--->"+e.toString());
e.printStackTrace();
}
}
catch (Exception e)
{
Log.v("Exception: Get get Album in List","Name-"+e.toString());
e.printStackTrace();
}
return code;
}
@Override
protected void onPostExecute(String code)
{
if(code.equals("0"))
{
Receive_History_Custom_Adapter adapter = new Receive_History_Custom_Adapter(getApplicationContext(), receiveMsgData);
lv.setAdapter(adapter);
}
else
{
Toast.makeText(getApplicationContext(), "Data not found", Toast.LENGTH_SHORT).show();
}
try
{
progressDialog.dismiss();
progressDialog = null;
}
catch (Exception e)
{
// nothing
}
}
}
}
И я получил следующее исключение:
Call JSON Exception in get Album in List--->org.json.JSONException: Value [] at 0 of type org.json.JSONArray cannot be converted to JSONObject
Мой ответ Json:
[
{
"code":"0", "user_id":"21", "msg_id":"115", "name":"Sagar", "age":"18", "sex":"Male", "country":
" India", "text":"hi", "photo":"demo.idevtechnolabs.com", "cnt":"1"
},
{
"code":"0", "user_id":"18", "msg_id":"114", "name":"Ramani", "age":"20", "sex":"Male", "country":
"Pakistan", "text":"hi", "photo":"demo.idevtechnolabs.com", "cnt":"1"
}
]
Может ли кто-нибудь сказать мне, в чем причина этого и как я могу решить эту проблему, пожалуйста.
Заранее спасибо!
Value [] at 0 of type org.json.JSONArray cannot be converted to JSONObject
Ваш json - этоJSONArray
, но вы пытаетесь преобразовать его в JSONObject
- person Raghunandan   schedule 02.04.2014for(int i=0; i<jsonArray.length();i++){for(int i=0; i<4;i++)
- person Raghunandan   schedule 02.04.2014for(int i=0; i<4;i++)
- person Raghunandan   schedule 02.04.2014