2013-01-09 41 views
34

Làm thế nào để chuyển đổi danh sách chung để json theo Java.I có lớp như thế này ..Làm thế nào để chuyển đổi List để Json trong Java

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

Tôi muốn chuyển đổi outputList vào json theo Java.After chuyển đổi tôi sẽ gửi cho nó cho khách hàng.

+0

Thats khá khó nếu bạn chỉ biết outputvalue là 'Object'. Chúng tôi thậm chí không thể giả định nó là serializable. – Henry

+0

giả sử tất cả các lớp là có thể nối tiếp – vmb

+1

bản sao có thể có của [cách chuyển đổi Danh sách dữ liệu thành json] (http://stackoverflow.com/questions/8182391/how-to-convert-a-list-of-data-to- json) – Gabriel

Trả lời

82

Sử dụng thư viện GSON cho điều đó. Dưới đây là các mẫu mã

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

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

đây là phụ thuộc maven cho 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> 

Hoặc bạn có thể trực tiếp tải về jar từ đây và đặt nó trong đường dẫn lớp học của bạn

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

Để gửi Json cho khách hàng, bạn có thể sử dụng mùa xuân hoặc trong servlet đơn giản thêm mã này

response.getWriter(). Write (json);

+0

Làm thế nào để loại bỏ null khỏi json nếu danh sách chứa null. – rahul

+0

Đầu ra trông như thế nào? –

+2

câu trả lời đơn giản và ngắn gọn !!! – Naveen

9

Bạn cần thư viện bên ngoài cho việc này.

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

Google GSON là một trong những thư viện đó

Bạn cũng có thể có một cái nhìn here cho các ví dụ về chuyển đổi bộ sưu tập đối tượng Java để JSON chuỗi.

4

Nhìn vào thư viện google gson. Nó cung cấp một api phong phú để đối phó với điều này và rất dễ sử dụng.

+0

u có thể giải thích nó với mã số – vmb

+1

@vbm - https://sites.google.com/site/ gson/gson-user-guide # TOC-Bộ sưu tập-ví dụ –

3

Hãy thử điều này:

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

bạn có thể tìm API here.

2

Vì lợi ích đơn giản và có cấu trúc tốt, hãy sử dụng SpringMVC. Nó rất đơn giản.

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

tham khảo và tín dụng: https://github.com/xvitcoder/spring-mvc-angularjs

0

Sử dụng GSONBuilder với setPrettyPrinting và disableHtml cho đầu ra tốt đẹp.

String json = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping(). 
          create().toJson(outputList ); 
        fileOut.println(json); 
Các vấn đề liên quan