Comment convertir une liste en Json en Java


Comment convertir une liste générique en json en Java.J'ai la classe comme ça..

public class Output
{
    public int Keyname { get; set; }
    public Object  outputvalue{ get; set; }  //outvalue may be even a object collection
}

List<Output> outputList = new List<Output>();

Je veux convertir outputList en json en Java.Après la conversion, je l'enverrai au client.

Author: Gabriel, 2013-01-09

8 answers

Utilisez la bibliothèque GSON pour cela. Voici l'exemple de code

List<String> foo = new ArrayList<String>();
foo.add("A");
foo.add("B");
foo.add("C");

String json = new Gson().toJson(foo );

Voici la dépendance maven pour Gson

<dependencies>
    <!--  Gson: Java to Json conversion -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.2</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

Ou vous pouvez directement télécharger jar à partir d'ici et le mettre dans votre chemin de classe

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

Pour envoyer Json au client, vous pouvez utiliser spring ou dans un simple servlet ajouter ce code

Réponse.getWriter().écrire(json);

 128
Author: code_fish, 2015-08-28 15:03:52

Vous avez besoin d'une bibliothèque externe pour cela.

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

Google GSON est l'une de ces bibliothèques

Vous pouvez également jeter un oeil ici pour des exemples sur la conversion de la collection d'objets Java en chaîne JSON.

 13
Author: Rahul, 2013-01-09 05:50:16

Jackson fournit une API très utile et légère pour convertir un objet en JSON et vice versa. Veuillez trouver l'exemple de code ci-dessous pour effectuer l'opération

List<Output> outputList = new ArrayList<Output>();
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();
    }
}

Il existe de nombreuses autres fonctionnalités et une bonne documentation pour l'API Jackson. vous pouvez vous référer aux liens comme: https://www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial..

Dépendances à inclure dans le projet sont

    <!-- Jackson -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.5.1</version>
    </dependency>
 4
Author: Kushagra Misra, 2018-05-10 14:58:09

Regardez la bibliothèquegoogle gson . Il fournit une api riche pour y faire face et est très simple à utiliser.

 3
Author: Dave G, 2013-01-09 05:45:42

Essayez ceci:

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));
}

Vous pouvez trouver API ici.

 3
Author: Naveenkumar K, 2013-01-09 07:34:26

Télécharger java-json.pot de Java2s ensuite, utilisez le constructeur JSONArray

List myList = new ArrayList<>();    
JSONArray jsonArray = new JSONArray(myList);
System.out.println(jsonArray);
 3
Author: Ali, 2018-05-10 14:39:41

Pour des raisons de simplicité et bien structurées, utilisez SpringMVC. C'est tellement simple.

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

Référence et de crédit: https://github.com/xvitcoder/spring-mvc-angularjs

 2
Author: zawhtut, 2015-08-28 15:23:27

Utilisez GSONBuilder avec setPrettyPrinting et disableHtml pour une sortie agréable.

String json = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().
                            create().toJson(outputList  );
                    fileOut.println(json);
 0
Author: Ammad, 2017-10-13 00:52:00