user3534834
user3534834

Reputation: 85

is my JSON response correct? and why i see this exception when i try to retrieve it?

my problem is that i have an asp. web service .. and it gives me the following result when i invoke it :

[
  {
    "_OrderDetails": [
      {
        "ProductName": "FUCHS SUPER GT SAE 10W30 6X5 / FP10100010102",
        "TotalAfterDiscount_Lc": "7500",
        "MeasureUnitName": "كرتونة",
        "TotalPrice_Lc": "7500",
        "PricePerUnit_Lc": "75",
        "Quantity": "100"
      }
    ],
    "Id": "274",
    "OrderDate": "4/10/2014 12:00:00 AM",
    "Number": "16",
    "CustomerName": "الأسد",
    "Note": ""
  }
]

and in the main activity i do the following :

 Gson gson = new Gson();
            Log.e("Response", responseJSON);

            if (responseJSON != null) {
                try {
                    JSONObject jsonObj = new JSONObject(responseJSON);

                     //JSONArray jsonarr =new JSONArray();
                    // details=jsonObj.getJSONObject(0);
                    // Getting JSON Array node
                    details = jsonObj.getJSONArray(TAG_CONTACTS);

                    // looping through All Contacts
                    for (int i = 0; i < details.length(); i++) {
                        JSONObject c = details.getJSONObject(i);

                        String product = c.getString(TAG_PRODUCT);
                        Log.e("prodeuct",product+"");
                    }

i see the response in the logcat correctly but when i try to get any object from the array i see a JSON exception it says :

JSON array can't be converted to JSON object !!!

please can anyone help me??

Upvotes: 0

Views: 47

Answers (3)

Prashant Mishra
Prashant Mishra

Reputation: 627

http://jsonviewer.stack.hu/ use it to view your json and resolve it accordingly. you are using json array as json object.

use these:

JSONObject jsonObj = new JSONObject(responseJSON); 

to

JSONArray jr = new JSONArray(responseJSON);

Upvotes: 1

Sagar Maiyad
Sagar Maiyad

Reputation: 12733

Because your json return jsonarray and you are try to access jsonobject.

Change your code:

if (responseJSON != null) {
                try {
                    JSONArray jsonObj = new JSONArray(responseJSON);

                          // looping through All Contacts
                    for (int i = 0; i < jsonObj.length(); i++) {
                        // your code
                    }

Upvotes: 1

Kanaiya Katarmal
Kanaiya Katarmal

Reputation: 6108

Chang to JSONArray

if (responseJSON != null) {
try {
JSONArray array = new JSONArray(responseJSON)

}

Upvotes: 1

Related Questions