Cómo convertir List a Json en Java

Cómo convertir una lista genérica a json en Java. Tengo una clase como esta.

public class Output { public int Keyname { get; set; } public Object outputvalue{ get; set; } //outvalue may be even a object collection } List outputList = new List(); 

Quiero convertir outputList en json en Java. Después de convertir lo enviaré al cliente.

Use la biblioteca GSON para eso. Aquí está el código de ejemplo

 List foo = new ArrayList(); foo.add("A"); foo.add("B"); foo.add("C"); String json = new Gson().toJson(foo ); 

Aquí está la dependencia de maven para Gson

    com.google.code.gson gson 2.2.2 compile   

O puede descargar directamente jar desde aquí y ponerlo en su camino de clase

http://code.google.com/p/google-gson/downloads/detail?name=gson-1.0.jar&can=4&q=

Para enviar Json al cliente puede usar spring o en servlet simple agregar este código

response.getWriter (). write (json);

Necesitas una biblioteca externa para esto.

 JSONArray jsonA = JSONArray.fromObject(mybeanList); System.out.println(jsonA); 

Google GSON es una de esas bibliotecas

También puede consultar ejemplos de cómo convertir colecciones de objetos Java a cadenas JSON.

Mira la biblioteca google gson . Proporciona una gran API para manejar esto y es muy fácil de usar.

Prueba esto:

 public void test(){ // net.sf.json.JSONObject, net.sf.json.JSONArray List objList = new ArrayList(); objList.add("obj1"); objList.add("obj2"); objList.add("obj3"); HashMap objMap = new HashMap(); objMap.put("key1", "value1"); objMap.put("key2", "value2"); objMap.put("key3", "value3"); System.out.println("JSONArray :: "+(JSONArray)JSONSerializer.toJSON(objList)); System.out.println("JSONObject :: "+(JSONObject)JSONSerializer.toJSON(objMap)); } 

puedes encontrar API aquí .

Para simplificar y bien estructurado, use SpringMVC. Es tan simple.

 @RequestMapping("/carlist.json") public @ResponseBody List getCarList() { return carService.getAllCars(); } 

Referencia y crédito: https://github.com/xvitcoder/spring-mvc-angularjs

jackson proporciona API muy útil y ligera para convertir Object a JSON y viceversa. Encuentre el código de ejemplo a continuación para realizar la operación

 List outputList = new ArrayList(); public static void main(String[] args) { try { Output output = new Output(1,"2342"); ObjectMapper objectMapper = new ObjectMapper(); String jsonString = objectMapper.writeValueAsString(output); System.out.println(jsonString); } catch (JsonProcessingException e) { e.printStackTrace(); } } 

hay muchas otras características y buena documentación para Jackson API. puede consultar los enlaces como: https://www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial ..

dependencias para incluir en el proyecto son

    com.fasterxml.jackson.core jackson-databind 2.5.1   com.fasterxml.jackson.core jackson-core 2.5.1   com.fasterxml.jackson.core jackson-annotations 2.5.1  

descargue java-json.jar de Java2s y luego use el constructor JSONArray

 List myList = new ArrayList<>(); JSONArray jsonArray = new JSONArray(myList); System.out.println(jsonArray); 

Utilice GSONBuilder con setPrettyPrinting y disableHtml para un buen resultado.

 String json = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping(). create().toJson(outputList ); fileOut.println(json);