-3

Guys can anyone help me to parse the below JSON data:

[
    {
        "oneMethod": {
            "NewData": {
                "Table": {
                    "Column1": "1",
                    "Column2": "2",
                    "Column3": "3",
                    "Column4": "4",
                    "Column5": "5",
                    "Column6": "6"
                }
            }
        }
    }
]

I am using this:

JSONObject reader = new JSONObject(jsonStr);
JSONObject sys  = reader.getJSONObject("Table");
id = sys.getString("Column1");
id2 = sys.getString("Column1");
id3 = sys.getString("Column1");
id4 = sys.getString("Column1");
id5 = sys.getString("Column1");
id6 = sys.getString("Column1");

But it's saying

JSONArray cannot be converted to JSONObject

Lucifer
  • 29,392
  • 25
  • 90
  • 143
user1740281
  • 383
  • 2
  • 5
  • 16

3 Answers3

2

Try this..

  [                                        //JSONArray Jarray
    {                                      //JSONObject Jobject
        "someMethod": {                    //JSONObject object_someMethod
            "NewDataSet": {                //JSONObject object_NewDataSet
                "Table": {                 //JSONObject object_Table
                    "Column1": "1",
                    "Column2": "2",
                    "Column3": "3",
                    "Column4": "4",
                    "Column5": "5",
                    "Column6": "6"
                }
            }
        }
    }
]

Code:

JSONArray Jarray = new JSONArray(result);
JSONObject Jobject = Jarray.getJSONObject(0);
JSONObject object_someMethod = Jobject.getJSONObject("someMethod");
JSONObject object_NewDataSet = object_someMethod.getJSONObject("NewDataSet");
JSONObject object_Table = object_NewDataSet.getJSONObject("Table");

Log.v("Column1",""+object_Table.getString("Column1"));
Log.v("Column2",""+object_Table.getString("Column2"));
Log.v("Column3",""+object_Table.getString("Column3"));
Log.v("Column4",""+object_Table.getString("Column4"));
Log.v("Column5",""+object_Table.getString("Column5"));
Log.v("Column6",""+object_Table.getString("Column6"));
Hariharan
  • 24,741
  • 6
  • 50
  • 54
2
[  // json array node
    {  // json object node 
        "someMethod": { // json object somemethod 
            "NewDataSet": {  //json object NewDataSet 
                "Table": {    //json object Table
                    "Column1": "1",
                    "Column2": "2",
                    "Column3": "3",
                    "Column4": "4",
                    "Column5": "5",
                    "Column6": "6"
                }
            }
        }
    }
   ]

Look at the docs

http://developer.android.com/reference/org/json/JSONArray.html

And

http://developer.android.com/reference/org/json/JSONObject.html

To parse

JSONArray jr = new JSONArray("your json string");
// at the top you have a json array node
JSONObject jb = (JSONObject)jr.get(0);
// then you have a json object. Use the index and then cast to JSONObject
JSONObject jb1 = (JSONObject) jb.getJSONObject("someMethod");
JSONObject jb2 = (JSONObject)jb1.getJSONObject("NewDataSet");
JSONObject jb3 = (JSONObject)jb2.getJSONObject("Table");
String col1 = jb3.getString("Column1");
String col2 = jb3.getString("Column2");
String col3 = jb3.getString("Column3"); 
String col4 = jb3.getString("Column4");
String col5 = jb3.getString("Column5");
String col6 = jb3.getString("Column6");
Raghunandan
  • 132,755
  • 26
  • 225
  • 256
0

Problem is at JSONObject reader = new JSONObject(jsonStr); as you are getting array while you are using object which is causing a problem!!

always remember

[ means array

{ means object

so have a look on following code

JSONArray ja = new JSONArray(jsonStr);
JSONObject jo = (JSONObject)ja.get(0);
JSONObject jo1 = jo.getJSONObject("someMethod");
JSONObject jo2 = jo1.getJSONObject("NewDataSet");
JSONObject jo3 = jo2.getJSONObject("Table");
String column1 = jo3.getString("Column1");
String column2 = jo3.getString("Column2");
String column3 = jo3.getString("Column3"); 
String column4 = jo3.getString("Column4");
String column5 = jo3.getString("Column5");
String column6 = jo3.getString("Column6");
Jitesh Upadhyay
  • 5,244
  • 2
  • 25
  • 43