Trong dự án hiện tại của tôi, tôi sử dụng thư viện GSON trong android và tôi đã gặp phải sự cố về deserializtion của Maps lồng nhau. Đây là cách ban đầu json trông giống nhưGoogle GSON lồng nhau HashMaps deserialization
{
"5":{
"id":5,
"name":"initial name",
"image_url":"uploads/71d44b5247cc1a7c56e62fa51ca91d9b.png",
"status":"1",
"flowers":{
"7":{
"id":7,
"category_id":"5",
"name":"test",
"description":"some description",
"price":"1000",
"image_url":"uploads/test.png",
"status":"1",
"color":"red",
}
}
}
}
Và POJO tôi
class Category {
long id;
String name;
String image_url;
HashMap<String,Flower> flowers;
}
Và Flower lớp
class Flower {
long id;
String category_id;
String name;
String description;
String price;
String image_url;
String status;
}
Nhưng khi tôi cố gắng để deserialize đối tượng này, tôi có thể truy cập vào hashmaps lồng nhau, các mã mẫu là
public class TestJson {
public static void main(String[] args) {
Gson gson = new Gson();
try {
BufferedReader br = new BufferedReader(
new FileReader("2.txt"));
HashMap<String,Category> map = gson.fromJson(br, HashMap.class);
Collection<Category> asd = map.values();
System.out.println(map.values());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Bất kỳ đề xuất nào?
Có, tôi đã bỏ lỡ TypeTokens trong mã của mình, sau khi sửa tất cả hoạt động hoàn hảo. Cảm ơn –
Cảm ơn .. Đây là chính xác những gì tôi đang tìm kiếm kể từ nửa giờ cuối cùng :) – Arjun