0

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

1
  • JSONArray storeObj = json.getJSONArray("store"); store is not an JSONArray. It is Jsonobject. so you can change JSONObject storeObj = json.getJSONObject("store"); Commented Oct 4, 2012 at 6:27

2 Answers 2

1

By seeing your log, use this

JSONObject storeObj = json.getJSONObject("store");

instead of

JSONArray storeObj = json.getJSONArray("store");

Because store is an JSON object

Sign up to request clarification or add additional context in comments.

Comments

0
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);

1 Comment

I believe it will solve the issue here . When it do don't forget to accept the answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.