2013-07-31 48 views
11

Tôi có một json như thế này:Làm thế nào để chuyển đổi mảng chuỗi thành đối tượng bằng cách sử dụng GSON/JSON?

[ 
    [ 
    "Passport Number", 
    "NATIONALITY", 
    "REASONS" 
    ], 
    [ 
    "SHAIS100", 
    "INDIA", 
    "" 
    ], 
    [ 
    "", 
    "", 
    "Agent ID is not matched." 
    ], 
    [ 
    "", 
    "", 
    "" 
    ] 
] 

Tôi muốn cư này để ArrayList<String[]>, Xin vui lòng cho tôi biết làm thế nào để làm gì?

Và chuỗi trống không được chuyển đổi thành giá trị rỗng.

Trả lời

31

Đó là rất đơn giản, bạn chỉ cần làm như sau:

1. Đầu tiên tạo ra các đối tượng Gson:

Gson gson = new Gson(); 

2.- Sau đó lấy phóng Type cho bạn List<String[]> (Lưu ý rằng bạn không thể làm điều gì đó như List<String[]>.class do Java type erasure):

Type type = new TypeToken<List<String[]>>() {}.getType(); 

3.- Fi nally phân tích cú pháp JSON thành cấu trúc loại type:

List<String[]> yourList = gson.fromJson(yourJsonString, type); 
11

Hãy xem Gson docs

Gson gson = new Gson(); 
int[] ints = {1, 2, 3, 4, 5}; 
String[] strings = {"abc", "def", "ghi"}; 

(Serialization) 
gson.toJson(ints);  ==> prints [1,2,3,4,5] 
gson.toJson(strings); ==> prints ["abc", "def", "ghi"] 

(Deserialization) 
int[] ints2 = gson.fromJson("[1,2,3,4,5]", int[].class); 
==> ints2 will be same as ints 

Tis là quan trọng đối với bạn: Chúng tôi cũng hỗ trợ mảng đa chiều, với các loại nguyên tố tùy tiện phức tạp

Đối null đối tượng, Gson theo mặc định sẽ không chuyển đổi thành null. Ref. Nhưng bạn có thể định cấu hình để quét các thuộc tính nulls đó nếu bạn muốn thực hiện sau.

Hành vi mặc định được triển khai trong Gson là các trường đối tượng rỗng bị bỏ qua. Điều này cho phép một định dạng đầu ra nhỏ gọn hơn; tuy nhiên, máy khách phải xác định một giá trị mặc định cho các trường này vì định dạng JSON được chuyển đổi trở lại thành Java của nó.

Đây là cách bạn sẽ cấu hình một trường hợp Gson để đầu ra null:

Gson gson = new GsonBuilder().serializeNulls().create(); 

Trong vấn đề của bạn có lẽ bạn không cần phải cấu hình đó.

Tôi hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan