1

Response of JSON

[{
    "ETag": "c28c2a1d",
    "Id": "566668257",
    "Links": [{
        "Href": "\/v1\/companies\/566668257",
        "Rel": "self"
    }, {
        "Href": "\/v1\/companies\/566668257",
        "Rel": "parent"
    }],
    "Address": "412 S Van Buren",
    "AddressParsed": {
        "Name": "Van Buren",
        "Number": "412",
        "PreDirectional": "S"
    },
    "City": "Weiner",
    "CompanyName": "Greenway Equipment Inc",
    "FirstName": "John",
    "LastName": "Conner",
    "Location": {
        "Latitude": 35.621407,
        "Longitude": -90.910036
    },
    "Phone": "8706847720",
    "PostalCode": "72479",
    "StateProvince": "AR",
    "ParentCompany": "566668257"
}]

My current code but I don't know how to get elements of Links:

public void parseJSON(String parse) throws JSONException {
    System.out.println("parse json");

    JSONArray jsonarray = new JSONArray(parse);

    int parselength = jsonarray.length();

    JSONObject arraynode ;

    String[] ID = new String[parselength];
    String[] Etag = new String[parselength];
    String[] City = new String[parselength];        
    String[] Address = new String[parselength];
    **//String[][] Links = new String[parselength][parselength];** 

    System.out.println("parse"+parselength);

    String strCSV = "";

    strCSV = "ID, Etag, Links, Address\r\n"; 
    for(int i=0; i<parselength-1; i++){

         arraynode = jsonarray.getJSONObject(i);

         ID[i] = arraynode.getString("Id");
         City[i] = arraynode.getString("City");
         Etag[i] = arraynode.getString("ETag");
         Address[i] = arraynode.getString("Address");

         //JSONArray innerLink = new JSONArray(arraynode.getString("Links"));

         strCSV += Etag[i]+","+ID[i]+","+City[i]+","+Address[i]+"\r\n";    //   
    }
}

I can see the multidimensional array data in the inner loop when i check it from system.out.println but when i convert it into CSV it does not copy in CSV.

Can any on help me out in this.


Links is a field of my JSON Array as you can see in the response of JSON Array. It is a Multidimensional array.

When I execute my code it throws a error that Links not found.

My Ques is that how can I Convert this JSON Array into Java Array ? As i have done for the rest of the fields.

2
  • im a bit confused what you are trying to do, can you please elaborate more? Commented Nov 10, 2014 at 13:22
  • 1/ You might want to use a StringBuilder for strCSV, 2/ you can declare all vars inside the loop (easier to get the size right for links). Commented Nov 10, 2014 at 13:28

3 Answers 3

0

Maybe this will help.... Links itself is a JSONArray so you have to iterate through it also.

for (int i = 0; i < parselength; i++) {

            arraynode = jsonarray.getJSONObject(i);
            ID[i] = arraynode.getString("Id");
            City[i] = arraynode.getString("City");
            Etag[i] = arraynode.getString("ETag");
            Address[i] = arraynode.getString("Address");

            JSONArray jsonarraylink = new JSONArray(arraynode.getJSONArray("Links").toString());

            int linklength = jsonarraylink.length();
            Links[i] = new String[linklength];
            for (int j = 0; j < linklength; j++) {
                linknode = jsonarraylink.getJSONObject(i);
                Links[i][j] = linknode.getString("Href");
                System.out.println(linknode.getString("Href"));
            }
            //JSONArray innerLink = new JSONArray(arraynode.getString("Links"));

            strCSV += Etag[i] + "," + ID[i] + "," + City[i] + "," + Address[i] + "\r\n";    //   
        }
Sign up to request clarification or add additional context in comments.

2 Comments

uncomment String[][] Links = new String[parselength][];
Its working for me if you want i can mail you the code.
0

your for loop should be till i < parselength

public void parseJSON(String parse) throws JSONException { System.out.println("parse json");

    JSONArray jsonarray = new JSONArray(parse);

    int parselength = jsonarray.length();

    JSONObject arraynode ;

    String[] ID = new String[parselength];
    String[] Etag = new String[parselength];
    String[] City = new String[parselength];        
    String[] Address = new String[parselength];
    **//String[][] Links = new String[parselength][parselength];** 

    System.out.println("parse"+parselength);

    String strCSV = "";

    strCSV = "ID, Etag, Links, Address\r\n"; 
    for(int i=0; i<parselength; i++){

         arraynode = jsonarray.getJSONObject(i);

         ID[i] = arraynode.getString("Id");
         City[i] = arraynode.getString("City");
         Etag[i] = arraynode.getString("ETag");
         Address[i] = arraynode.getString("Address");

         //JSONArray innerLink = new JSONArray(arraynode.getString("Links"));

         strCSV += Etag[i]+","+ID[i]+","+City[i]+","+Address[i]+"\r\n";    //   
    }
}

Comments

0
public void parseJSON(String parse) throws JSONException {
    System.out.println("Parse JSON Array into Java Array");

    JSONArray jsonarray = new JSONArray(parse);

    int parselength = jsonarray.length();

    JSONObject arraynode ;

    String[] ID = new String[parselength];
    String[] Etag = new String[parselength];
    String[] City = new String[parselength];        
    String[] Address = new String[parselength];
    String[][] Links = new String[parselength][]; 
    //String[] Href = new String[parselength];
    //String[] Rel = new String[parselength];

    System.out.println("Json Array Length is: "+parselength);

    String strCSV = "";

    strCSV = "ID, Etag, City, Address, Href, Rel\r\n"; 
    for(int i=0; i<parselength; i++){

         arraynode = jsonarray.getJSONObject(i);

         ID[i] = arraynode.getString("Id");
         Etag[i] = arraynode.getString("ETag");
         City[i] = arraynode.getString("City");
         Address[i] = arraynode.getString("Address");

         //Href[i] = arraynode.getString("Href");
         //Rel[i] = arraynode.getString("Rel");

         JSONArray jsonarraylink = new JSONArray(arraynode.getJSONArray("Links").toString());
         int linklength = jsonarraylink.length();
         Links[i] = new String[linklength];
         for (int j = 0; j < linklength; j++) {
             arraynode = jsonarraylink.getJSONObject(i);
             Links[i][j] = arraynode.getString("Href");
             Links[i][j] = arraynode.getString("Rel");
             //Href[j] = arraynode.getString("Href");
             //Rel[j] = arraynode.getString("Rel");
             System.out.println(arraynode.getString("Href"));
             System.out.println(arraynode.getString("Rel"));
             strCSV += Etag[i]+","+ID[i]+","+City[i]+","+Address[i]+","+Links[i][j]+"\r\n";    // ,"+Href[j]+","+Rel[j]+"
         }                       
         //strCSV += Etag[i]+","+ID[i]+","+City[i]+","+Address[i]+"\r\n";    // ,"+Links[i]+"
    }       
    //CSV method is called with the string(strCSV) parameter. 
    Convertor(strCSV);
}

Comments

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.