Reputation: 389
I have code like this to show data from mysql,
its to read data
protected String doInBackground(String... params) {
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
// Building Parameters
// int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("phone", mPhoneNumber));
params.add(new BasicNameValuePair("id_store", id_store));
// getting store details by making HTTP request
// Note that store details url will use GET request
JSONObject json = jsonParser.makeHttpRequest(Constants.url_store_detail, "GET", params);
// check your log for json response
Log.d("Single Store Details", json.toString());
// json success tag
// successfully received store details
JSONArray storeObj = json.getJSONArray("store"); // JSON Array
// get first product object from JSON Array
JSONObject store = storeObj.getJSONObject(0);
// product with this pid found
// Edit Text
urledit = (EditText) findViewById(R.id.ETurledit);
storenameedit = (EditText) findViewById(R.id.ETusernameedit);
storedescedit = (EditText) findViewById(R.id.ETdescedit);
edittype=(Spinner)findViewById(R.id.Stypeedit);
String url = json.getString(TAG_URL);
// display store data in EditText
urledit.setText(store.getString(TAG_URL));
storenameedit.setText(store.getString(TAG_NAME));
storedescedit.setText(store.getString(TAG_DESC));
if(store.getString(TAG_TYPE).equals("1")){
String mine = store.getString("Wordpress");
ArrayAdapter myadap = (ArrayAdapter)edittype.getAdapter();
int spinnerpos = myadap.getPosition(mine);
edittype.setSelection(spinnerpos);
}else{
String mine = store.getString("Prestashop");
ArrayAdapter myadap = (ArrayAdapter)edittype.getAdapter();
int spinnerpos = myadap.getPosition(mine);
edittype.setSelection(spinnerpos);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
return null;
}
but it show error like this
10-04 13:08:57.377: DEBUG/dalvikvm(306): GC_EXPLICIT freed 42 objects / 2008 bytes in 260ms
10-04 13:08:59.837: INFO/ActivityManager(59): Starting activity: Intent { cmp=shoop3.android.edu/.editstoreActivity (has extras) }
10-04 13:09:01.148: DEBUG/dalvikvm(1272): GC_FOR_MALLOC freed 1456 objects / 269496 bytes in 198ms
10-04 13:09:01.407: DEBUG/Single Store Details(1272): {"store":{"id_user":"56","id_platform":"2","store_url":"prestashop","store_desc":"dasdasd","id_store":"38","store_logo":null,"store_name":"prestashop","store_curr":null}}
10-04 13:09:01.427: WARN/System.err(1272): org.json.JSONException: Value {"id_user":"56","id_platform":"2","store_url":"prestashop","store_desc":"dasdasd","id_store":"38","store_logo":null,"store_name":"prestashop","store_curr":null} at store of type org.json.JSONObject cannot be converted to JSONArray
10-04 13:09:01.457: WARN/System.err(1272): at org.json.JSON.typeMismatch(JSON.java:96)
10-04 13:09:01.457: WARN/System.err(1272): at org.json.JSONObject.getJSONArray(JSONObject.java:548)
10-04 13:09:01.507: WARN/System.err(1272): at shoop3.android.edu.editstoreActivity$GetStoreDetails$1.run(editstoreActivity.java:189)
10-04 13:09:01.507: WARN/System.err(1272): at android.os.Handler.handleCallback(Handler.java:587)
10-04 13:09:01.517: WARN/System.err(1272): at android.os.Handler.dispatchMessage(Handler.java:92)
10-04 13:09:01.517: WARN/System.err(1272): at android.os.Looper.loop(Looper.java:123)
10-04 13:09:01.517: WARN/System.err(1272): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-04 13:09:01.528: WARN/System.err(1272): at java.lang.reflect.Method.invokeNative(Native Method)
10-04 13:09:01.528: WARN/System.err(1272): at java.lang.reflect.Method.invoke(Method.java:521)
10-04 13:09:01.528: WARN/System.err(1272): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-04 13:09:01.537: WARN/System.err(1272): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-04 13:09:01.577: WARN/System.err(1272): at dalvik.system.NativeStart.main(Native Method)
10-04 13:09:02.948: INFO/ActivityManager(59): Displayed activity shoop3.android.edu/.editstoreActivity: 3002 ms (total 3002 ms)
How to solve this?? bcause it show error that JSONObject cannot converter to JSONArray , i hope someone can help me , thanks for ur advice
Upvotes: 0
Views: 1604
Reputation: 1584
JSONObject json = jsonParser.makeHttpRequest(Constants.url_store_detail, "GET", params);
as you can see that here json is a JSONObject
. and here
JSONArray storeObj = json.getJSONArray("store");
from a JSONObject
you are trying to get a JSONArray
.
so instead of declaring json as JSONObject
declare it as a JSONArray
.
and then remove storeObj and directly get your data as follows
JSONObject store = json.getJSONObject(0);
Upvotes: 0
Reputation: 768
By seeing your log, use this
JSONObject storeObj = json.getJSONObject("store");
instead of
JSONArray storeObj = json.getJSONArray("store");
Because store is an JSON object
Upvotes: 1