2016-08-07 21 views
0

Ich bin ein Anfänger mit JAVA und werden mit der Gson Bibliothek einen JSON-String, so etwas zu konvertieren:java Gson JSON-Objekt-Array String-Array

String json = "{\"Report Title\": \"Simple Embedded Report Example with Parameters\",\"Col Headers BG Color\": \"yellow\",\"Customer Names\":[\"American Souvenirs Inc\",\"Toys4GrownUps.com\",\"giftsbymail.co.uk\",\"BG&E Collectables\",\"Classic Gift Ideas, Inc\"]}"; 
Gson gson = new Gson(); 
jsonObject (Map) = gson.fromJson(json, Object.class); 

Aber das Problem ist, ich die „Kundennamen“ müssen Array, das als Zeichenfolgenarray und nicht als Objektarray zurückgegeben werden soll.

Kann Gson dies tun oder müsste es später konvertiert werden, indem man irgendwie den Typ (Array) erkennt und dann jedes Element umwandelt, um es in ein String-Array umzuwandeln und das Objekt-Array zu ersetzen?

Das hinzugefügte Problem ist, dass die JSON-Feldnamen nicht festgelegt sind, und möglicherweise mehrere Arrays in der JSON-Zeichenfolge enthalten sind und alle von ihnen müssen konvertiert werden.

Antwort

0

können Sie verwenden jsonarray bestimmtes Feld kann

Sie json api JSON

hinzufügen json Text-Datei oder Sie können passieren verwenden Puffer

String json = "{\"customer_names\" : [...]}"; 

dann

zum Parameter finden, um
JSONParser parser = new JSONParser(); 
Object obj = parser.parse(new FileReader("test.json")); 

    JSONObject jsonObject = (JSONObject) obj; 
     JSONArray msg = (JSONArray) jsonObject.get("Customer Names"); 
      Iterator<String> iterator = msg.iterator(); 
      while (iterator.hasNext()) { 
        System.out.println(iterator.next()); 
      } 

oder Sie können GSON etwas so verwenden

+0

Danke für die Hilfe, das Problem ist, ich muss in der Lage sein, alle Arrays in String-Arrays zu konvertieren und die JSON-Feldnamen sind nicht behoben. – crankshaft

+0

Sie können überprüfen mit zurückgegebenen Objekt ist Array-Instanz dann in String-Array konvertieren diesen Link http://stackoverflow.com/questions/2725533/how-to-see-if-an-object-is-anarray-without- Verwendung-Reflexion –