JSONstring in Array konvertieren (nicht in JSONarray)

messmar

Erfahrenes Mitglied
Hallo Zusammen,

wie kann man ein JSON String in einem Array umwandeln?

Der JSON String sieht bei mir so aus:
Java:
{ "dbResult" : [ { "dateCreated" : "2016-05-27",
  "firstName" : "aaaaa",
  "isMember" : false,
  "lastName" : "bbbbb",
  "points" : 9
  },
  { "dateCreated" : "2016-05-29",
  "firstName" : "zzzzz",
  "isMember" : true,
  "lastName" : "yyyyy",
  "points" : 2
  }
  ] }

Ich habe den Type dieses JSON - um auf Nummer Sicher zu gehen - mit dem folgenden Code
Java:
Object o = t;
System.out.println( o.getClass().getName());
ausgegeben, und das Ergebnis ist:
Java:
java.lang.String

Mein Ziel ist am Ende die key/value pairs aus dem JSON auslesen und ausgeben zu können.
Das ganze wird auf ner JSP Seite gemacht.. also, es ist JSP im Einsatz.

der ganze Code:

Java:
String b = "[" + session.getAttribute("obj") + "]";
JSONArray jsonArray = new JSONArray(b);
String t = null;

for (int j = 0; j < jsonArray.length(); j++) {
 
  JSONObject jsFinal = jsonArray.getJSONObject(j);
  Iterator<String> keys = jsFinal.keys();
 
  while (keys.hasNext()) {
  String key = keys.next();
 
  System.out.println("Key :" + key + "\n To String Value --> :" + jsFinal.get(key).toString() );
 
  t = jsFinal.get(key).toString();
  }
}

System.out.println("TTT: " + t);

Object o = t;
System.out.println( o.getClass().getName()); // print

Am Ende erhalte ich in der Variable 't' ein Json String, aus dem ich dann die key/values einzeln ausgeben möchte.
Wenn ich eine for-schleife dafür baue, dann erhelte ich den Fehler, dass es ein string und kein Array ist, und daher nicht mit ner For-Schleife auslesen kann.

Danke und Gruß
Messmar
 

messmar

Erfahrenes Mitglied
Morgen,

gefixt..

Java:
JSONObject myjson = new JSONObject(session.getAttribute("obj").toString());
JSONArray the_json_array = myjson.getJSONArray("dbResult");


String htmlOutPut;

htmlOutPut= "<br><br>";

for (int i = 0; i < the_json_array.length(); ) {
   
    JSONObject jsonObject = the_json_array.getJSONObject(i);
   
    //System.out.println("LENGTH OF JSONArray....: " + the_json_array.length());
   
    Iterator<String> keys = jsonObject.keys();
   
    while (keys.hasNext()) {
        String key = keys.next();
        Object value = jsonObject.get(key);
        htmlOutPut += "<div style=\"float:left; width:120px;\">" + value + "</div>";
    }
    htmlOutPut += "<br>";
    i++;
}

Grüße
Messmar