Come convertire i dati dell’elenco in json in java

Ho una funzione che restituisce i dati come List nella class java. Ora, secondo le mie necessità, devo convertirlo in Json Format.

Di seguito è riportato lo snippet del codice funzione:

 public static List getCartList() { List cartList = new Vector(cartMap.keySet().size()); for(Product p : cartMap.keySet()) { cartList.add(p); } return cartList; } 

Ho provato a convertire in json utilizzando questo codice, ma sta dando errore di disallineamento di tipo in quanto la funzione è di tipo elenco …

 public static List getCartList() { List cartList = new Vector(cartMap.keySet().size()); for(Product p : cartMap.keySet()) { cartList.add(p); } Gson gson = new Gson(); // convert your list to json String jsonCartList = gson.toJson(cartList); // print your generated json System.out.println("jsonCartList: " + jsonCartList); return jsonCartList; } 

Per favore aiutami a risolvere questo.

 public static List getCartList() { JSONObject responseDetailsJson = new JSONObject(); JSONArray jsonArray = new JSONArray(); List cartList = new Vector(cartMap.keySet().size()); for(Product p : cartMap.keySet()) { cartList.add(p); JSONObject formDetailsJson = new JSONObject(); formDetailsJson.put("id", "1"); formDetailsJson.put("name", "name1"); jsonArray.add(formDetailsJson); } responseDetailsJson.put("forms", jsonArray);//Here you can see the data in json format return cartList; } 

puoi ottenere i dati nel seguente modulo

 { "forms": [ { "id": "1", "name": "name1" }, { "id": "2", "name": "name2" } ] } 

Usare gson è molto più semplice. Utilizza lo snippet di codice seguente:

  // create a new Gson instance Gson gson = new Gson(); // convert your list to json String jsonCartList = gson.toJson(cartList); // print your generated json System.out.println("jsonCartList: " + jsonCartList); 

Conversione dalla stringa JSON al tuo object Java

  // Converts JSON string into a List of Product object Type type = new TypeToken>(){}.getType(); List prodList = gson.fromJson(jsonCartList, type); // print your List System.out.println("prodList: " + prodList); 

Ho scritto la mia funzione per restituire l’elenco di oggetti per la casella combinata popolata:

 public static String getJSONList(java.util.List list,String kelas,String name, String label) { try { Object[] args={}; Class cl = Class.forName(kelas); Method getName = cl.getMethod(name, null); Method getLabel = cl.getMethod(label, null); String json="["; for (int i = 0; i < list.size(); i++) { Object o = list.get(i); if(i>0){ json+=","; } json+="{\"label\":\""+getLabel.invoke(o,args)+"\",\"name\":\""+getName.invoke(o,args)+"\"}"; //System.out.println("Object = " + i+" -> "+o.getNumber()); } json+="]"; return json; } catch (ClassNotFoundException ex) { Logger.getLogger(JSONHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { System.out.println("Error in get JSON List"); ex.printStackTrace(); } return ""; } 

e chiamalo da qualsiasi parte come:

 String toreturn=JSONHelper.getJSONList(list, "com.bean.Contact", "getContactID", "getNumber"); 

Prova come sotto con Gson Library.

Il formato dell’elenco di conversione precedente era:

 [Product [Id=1, City=Bengalore, Category=TV, Brand=Samsung, Name=Samsung LED, Type=LED, Size=32 inches, Price=33500.5, Stock=17.0], Product [Id=2, City=Bengalore, Category=TV, Brand=Samsung, Name=Samsung LED, Type=LED, Size=42 inches, Price=41850.0, Stock=9.0]] 

e qui inizia la fonte di conversione.

 //** Note I have created the method toString() in Product class. //Creating and initializing a java.util.List of Product objects List productList = (List)productRepository.findAll(); //Creating a blank List of Gson library JsonObject List entities = new ArrayList(); //Simply printing productList size System.out.println("Size of productList is : " + productList.size()); //Creating a Iterator for productList Iterator iterator = productList.iterator(); //Run while loop till Product Object exists. while(iterator.hasNext()){ //Creating a fresh Gson Object Gson gs = new Gson(); //Converting our Product Object to JsonElement //Object by passing the Product Object String value (iterator.next()) JsonElement element = gs.fromJson (gs.toJson(iterator.next()), JsonElement.class); //Creating JsonObject from JsonElement JsonObject jsonObject = element.getAsJsonObject(); //Collecting the JsonObject to List entities.add(jsonObject); } //Do what you want to do with Array of JsonObject System.out.println(entities); 

Il risultato JSON convertito è:

 [{"Id":1,"City":"Bengalore","Category":"TV","Brand":"Samsung","Name":"Samsung LED","Type":"LED","Size":"32 inches","Price":33500.5,"Stock":17.0}, {"Id":2,"City":"Bengalore","Category":"TV","Brand":"Samsung","Name":"Samsung LED","Type":"LED","Size":"42 inches","Price":41850.0,"Stock":9.0}] 

Spero che questo possa aiutare molti ragazzi!