簡體   English   中英

如何在Java中將List轉換為Json

[英]How to convert List to Json in Java

如何在Java中將通用列表轉換為json。我有這樣的類..

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

我想在Java中將outputList轉換為json。轉換后我將它發送給客戶端。

使用GSON庫。 這是示例代碼

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

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

這是Gson的maven依賴

<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>

或者你可以直接從這里下載jar並將它放在你的類路徑中

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

要將Json發送到客戶端,您可以使用spring或簡單的servlet添加此代碼

。response.getWriter()寫(JSON);

你需要一個外部庫。

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

谷歌GSON就是這樣的圖書館之一

您還可以在此處查看有關將Java對象集合轉換為JSON字符串的示例。

看看谷歌gson庫。 它為處理這個問題提供了豐富的API,並且非常簡單易用。

試試這個:

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

你可以在這里找到API。

為了簡單和結構良好,使用SpringMVC。 這很簡單。

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

參考和信用: https//github.com/xvitcoder/spring-mvc-angularjs

從Java2s下載java-json.jar然后使用JSONArray構造函數

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

jackson提供了非常有用且輕量級的API,可將Object轉換為JSON,反之亦然。 請在下面找到示例代碼來執行操作

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

Jackson API還有許多其他功能和很好的文檔。 您可以參考以下鏈接: https//www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial ..

要包含在項目中的依賴項

    <!-- 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>

將GSONBuilder與setPrettyPrinting和disableHtml一起使用以獲得良好的輸出。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM