1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

JSONstring in Array konvertieren (nicht in JSONarray)

Dieses Thema im Forum "Enterprise Java (JEE, J2EE, Spring & Co.)" wurde erstellt von messmar, 4. Juni 2016.

  1. messmar

    messmar Erfahrenes Mitglied

    Hallo Zusammen,

    wie kann man ein JSON String in einem Array umwandeln?

    Der JSON String sieht bei mir so aus:
    Code (Java):
    1. { "dbResult" : [ { "dateCreated" : "2016-05-27",
    2.   "firstName" : "aaaaa",
    3.   "isMember" : false,
    4.   "lastName" : "bbbbb",
    5.   "points" : 9
    6.   },
    7.   { "dateCreated" : "2016-05-29",
    8.   "firstName" : "zzzzz",
    9.   "isMember" : true,
    10.   "lastName" : "yyyyy",
    11.   "points" : 2
    12.   }
    13.   ] }
    Ich habe den Type dieses JSON - um auf Nummer Sicher zu gehen - mit dem folgenden Code
    Code (Java):
    1. Object o = t;
    2. System.out.println( o.getClass().getName());
    ausgegeben, und das Ergebnis ist:
    Code (Java):
    1. 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:

    Code (Java):
    1. String b = "[" + session.getAttribute("obj") + "]";
    2. JSONArray jsonArray = new JSONArray(b);
    3. String t = null;
    4.  
    5. for (int j = 0; j < jsonArray.length(); j++) {
    6.  
    7.   JSONObject jsFinal = jsonArray.getJSONObject(j);
    8.   Iterator<String> keys = jsFinal.keys();
    9.  
    10.   while (keys.hasNext()) {
    11.   String key = keys.next();
    12.  
    13.   System.out.println("Key :" + key + "\n To String Value --> :" + jsFinal.get(key).toString() );
    14.  
    15.   t = jsFinal.get(key).toString();
    16.   }
    17. }
    18.  
    19. System.out.println("TTT: " + t);
    20.  
    21. Object o = t;
    22. 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
     
  2. messmar

    messmar Erfahrenes Mitglied

    Morgen,

    gefixt..

    Code (Java):
    1. JSONObject myjson = new JSONObject(session.getAttribute("obj").toString());
    2. JSONArray the_json_array = myjson.getJSONArray("dbResult");
    3.  
    4.  
    5. String htmlOutPut;
    6.  
    7. htmlOutPut= "<br><br>";
    8.  
    9. for (int i = 0; i < the_json_array.length(); ) {
    10.    
    11.     JSONObject jsonObject = the_json_array.getJSONObject(i);
    12.    
    13.     //System.out.println("LENGTH OF JSONArray....: " + the_json_array.length());
    14.    
    15.     Iterator<String> keys = jsonObject.keys();
    16.    
    17.     while (keys.hasNext()) {
    18.         String key = keys.next();
    19.         Object value = jsonObject.get(key);
    20.         htmlOutPut += "<div style=\"float:left; width:120px;\">" + value + "</div>";
    21.     }
    22.     htmlOutPut += "<br>";
    23.     i++;
    24. }
    Grüße
    Messmar
     
    sheel gefällt das.
Die Seite wird geladen...