2017-05-18 2 views
0

konvertieren Ermöglicht ich folgende KarteGibt es einen direkten Weg Map <String, List <String>> in einen JSON String (mit javax.json Bibliothek)

Map<String, List<String>> map = new HashMap<>(); 

List<String> list = new ArrayList<>(); 
list.add("First in list"); 
list.add("Second in list"); 

map.put("First in map", list); 

So wie kann ich es in einem davon ausgehen muß, konvertieren direkter Weg zu einem JSON-String mit javax.json Bibliothek?

+0

Es sollte aus irgendeinem Grunde javax.json wird (der Auftrag fehlt)? oder könnte andere sein? –

+1

Ja, ich möchte nur JDK Java-Bibliothek nicht andere externe libs verwenden, ich kenne viele Möglichkeiten, um es direkt mit Gson lib oder mit Jackson lib zu konvertieren, aber ich will nur wissen, ob es möglich, es mit javax.json tun oder nicht, wie ich versuchte, es mit javax.json zu konvertieren, aber ich scheiterte :( –

+5

Beachten Sie, dass 'javax.json' ist nicht Teil des JDK, es ist Java EE, nicht Java SE. –

Antwort

1

Ich habe gerade versucht, die folgenden

 Map<String, List<String>> map = new HashMap<>(); 

     List<String> list = new ArrayList<>(); 
     list.add("First in list"); 
     list.add("Second in list"); 

     List<String> list1 = new ArrayList<>(); 
     list1.add("First in secondlist"); 
     list1.add("Second in secondlist"); 

     map.put("First in map", list); 
     map.put("Second in map", list1); 

     final JsonArrayBuilder outerJsonArray = Json.createArrayBuilder(); 

     map.forEach((key, innerList) -> { 

      JsonArrayBuilder innerJsonArray = Json.createArrayBuilder(); 
      innerList.forEach(item -> innerJsonArray.add(item)); 

      outerJsonArray.add(Json.createObjectBuilder().add(key, innerJsonArray)); 

     }); 

     JsonArray usersJson = outerJsonArray.build(); 
     System.out.println(usersJson.toString()); 

und der resultierende JSON-Array

[ 
    { 
    "Second in map": [ 
     "First in secondlist", 
     "Second in secondlist" 
    ] 
    }, 
    { 
    "First in map": [ 
     "First in list", 
     "Second in list" 
    ] 
    } 
] 
+0

Tha Es ist eine korrekte Antwort und eigentlich habe ich es vorher versucht, also danke für Ihre Zeit, um diese Antwort zu kommentieren, jedenfalls suchte ich nach Antwort, die die Karte direkt nicht Schleife darauf lesen und den json durch was auch immer verursachen, zum Beispiel gerade zu mach es einfach, meinen Punkt so zu verstehen wie Json.read (map) (das ist natürlich nicht der richtige Code, aber ich versuche nur, dich zu erreichen, mein Punkt), nochmals vielen Dank :) –

Verwandte Themen