Note that there are some explanatory texts on larger screens.

plurals
  1. POGet a String[][] array from a JSON response
    text
    copied!<p>I get the following JSON response from a server...</p> <pre><code>[["1","1"],["2","1"],["3","1"],["4","1"],["5","1"],["6","1"],["7","1"],["8","1"],["9","2"],["10","3"],["11","3"],["12","3"],["13","3"],["14","3"],["15","3"],["16","3"],["17","3"],["18","3"],["19","3"]] </code></pre> <p>It is in JSON format and i get it as a <code>String[]</code>, something like this...</p> <pre><code>String response = Response.getValue(); System.out.println(response) = [["1","1"],["2","1"],["3","1"],["4","1"],["5","1"],["6","1"],["7","1"],["8","1"],["9","2"],["10","3"],["11","3"],["12","3"],["13","3"],["14","3"],["15","3"],["16","3"],["17","3"],["18","3"],["19","3"]] </code></pre> <p>However, the response is a matrix of 2 values <code>[USU_ID, DEPARTMENT]</code> and i need to use it in a <code>String[][]</code>. How can I do this? I tried to use <code>StringTokenizer</code> but it doesn't work very well.</p> <p>This is the code I have written...</p> <pre><code>public static String[][] Json2Matrix(String jsonStringArray) { int i = 0; int j = 0; String[][] mstrJsonString = null; StringTokenizer tokElementos, tokSubelementos, tokTemp; //jsonArray = "[["a","b"],["c","d"],["e","f"]]"; //jsonStringArray = jsonStringArray.replace("\"", ""); //jsonArray = "[[a,b],[c,d],[e,f]]"; jsonStringArray = jsonStringArray.substring(1, jsonStringArray.length() - 2); //jsonArray = "[a,b],[c,d],[e,f]";/ //System.out.println(jsonStringArray); //JSONSerializer.toJSON(jsonStringArray); //System.out.println(jsonArray.toString()); //&lt;editor-fold defaultstate="collapsed" desc="Prueba"&gt; tokElementos = new StringTokenizer(jsonStringArray, "[]"); tokTemp = tokElementos; tokSubelementos = new StringTokenizer(tokTemp.nextToken(), ","); //System.out.println(tokElementos.countTokens()); //System.out.println(tokElementos.nextToken()); //System.out.println(tokSubelementos.countTokens()/2); mstrJsonString = new String[tokElementos.countTokens()][tokSubelementos.countTokens()]; while (tokElementos.hasMoreTokens()) { tokSubelementos = new StringTokenizer(tokElementos.nextToken(), ","); j = 0; while (tokSubelementos.hasMoreTokens()) { mstrJsonString[i][j] = tokSubelementos.nextToken(); System.out.println(i + "," + j + " " + mstrJsonString[i][j]); j++; } i++; } //&lt;/editor-fold&gt; return mstrJsonString; } </code></pre> <p>and i get this as the output...</p> <pre><code>run: 1,0 "2" 1,1 "1" 3,0 "3" 3,1 "1" 5,0 "4" 5,1 "1" 7,0 "5" 7,1 "1" 9,0 "6" 9,1 "1" 11,0 "7" 11,1 "1" 13,0 "8" 13,1 "1" 15,0 "9" 15,1 "2" 17,0 "10" 17,1 "3" 19,0 "11" 19,1 "3" 21,0 "12" 21,1 "3" 23,0 "13" 23,1 "3" 25,0 "14" 25,1 "3" 27,0 "15" 27,1 "3" 29,0 "16" 29,1 "3" 31,0 "17" 31,1 "3" 33,0 "18" 33,1 "3" 35,0 "19" 35,1 "3" </code></pre> <p>It gets the correct values, but the incorrect Indexes. Could someone please help me correct this.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload