2017-02-23 2 views
1

kann jemand Code anzeigen, die JSer zu TreeMap deserialize? Einige einfaches Beispiel, das Beispiel von json umfasst ich zeigen werde, was ich Zunächst einmal versucht habe, bin ich Neuling so verzeihen Sie mir, dass mein json ist (wahrscheinlich i Fehler haben auch hier):JSON (die wenige Objekte enthält) zu TreeMap auf Java

{"Car":[{"mark":"AUDI_A3", "colour": "black"}, 
{"mark":"BMW_m3", "colour": "white"}]} 

Es gibt mein Code, der nicht

public static void main(String[] args) { 
     open(); 
    } 
    private static void open(){ 
     try { 
      BufferedReader buff = new BufferedReader(new FileReader("C:\Users\\t1.json")); 
      String bf=null; 
      String json= null; 
      while((bf=buff.readLine())!=null){ 
       json+=bf; 
      } 
      Gson gson = new Gson(); 
      Type type = new TypeToken<TreeMap<String, SmallGuys>>(){}.getType(); 
      TreeMap<String, SmallGuys> Platoon = gson.fromJson(json, type); 
      System.out.print(Platoon.keySet()); 
     } 
     catch (Exception e){ 
      System.out.println("There is a mistake"); 
     } 
    } 
+0

haben Sie versucht: http://stackoverflow.com/a/29965 924/1754020 –

+0

Haben Sie [Json in Map konvertieren] (http://stackoverflow.com/questions/443499/convert-json-to-map) betrachtet? – azurefrog

+0

gerade versucht, habe nicht geholfen final Type Map = neu TypeToken >() { } .getType(); Gson gson = neuer Gson(); JsonReader reader = neuer JsonReader (buff); TreeMap data = gson.fromJson (Leser, Map); // enthält die gesamte Bewertungsliste System.out.print (data.keySet()); – Geba

Antwort

1

Mit Jackson nicht funktioniert, habe ich einige Methoden setzen:

public static Object convertJsonRequestToObject(HttpServletRequest pRequest, Class<?> pObject) throws JsonParseException, JsonMappingException, IOException { 
    return new ObjectMapper().readValue(IOUtils.toString(pRequest.getInputStream(), StandardCharsets.UTF_8), pObject); 
} 

public static Map<String,Object> parseJsonToMap(String json) throws JsonParseException, JsonMappingException, IOException{ 
    return new ObjectMapper().readValue(json, HashMap.class); 
} 

public static Map<String,Object> parseObjectToMap(Object object){ 
    return (Map<String, Object>) new ObjectMapper().convertValue(object, Map.class); 
} 

//inverse 
public static Object parseMapToObject(Map<?, ?> pMap, Class<?> pClass){ 
    return new ObjectMapper().convertValue(pMap, pClass); 
} 
+0

Könnten Sie Ihren JSON zeigen? – Geba

+0

{"batchSize": 10, "batchIndex": 1, "inventoryInformation": {"inventarName": "Test", "userName": "jason.gonzalez", "beginDate": "2017-02-16", " endDate ":" 2017-02-23 "," Kategorie ":" 2 "}} und die Entität für diese öffentliche JSON-Klasse InventoryInput { \t \t private int batchIndex; \t private Int Batchgröße; \t private HashMap inventoryInformation; \t \t \t öffentliche InventoryInput() { \t \t \t} \t \t // Set und Get } –

+0

auch konvertieren kann ich Objekt auf der Einheit hinzufügen, Beispiel: var user = { \t \t \t fullName: getCurrentSpotUser() \t \t} \t \t var location = { \t \t \t idLocation: spotInformation.locationId, \t \t \t Benutzer \t \t } \t \t var Inventar = { \t \t \t idInventory: inventoryGeneralInformation.inventoryData.inventoryId \t \t } \t \t datasend.inventoryInformation = { \t \t \t Lage \t \t \t Inventar \t \t}; –