Tôi đã hỏi câu hỏi này trong một câu hỏi khác hôm nay nhưng tôi e rằng sẽ không nhận được bất kỳ giải pháp nào vì nó bị phrased ra sao.Gson - Tên trường giống nhau, các loại khác nhau
Tôi có một đầu vào json có các dữ liệu sau:
Như bạn có thể thấy, mục option_value là một mảng trong một đối tượng và một chuỗi đơn giản trong một đối tượng khác.
Làm cách nào để Gson có thể xử lý đúng cách? Lớp của tôi được mô tả dưới dạng đối tượng Danh sách, vì vậy nó hoạt động cho một vài mục đầu tiên trong đó option_value là một mảng, nhưng khi nó trở thành một chuỗi , sự cố ứng dụng và tôi nhận được một trường hợp phân tích cú pháp json json.
Có cách giải quyết nào cho vấn đề này không?
CẬP NHẬT
Thêm phần liên quan của lớp học của tôi theo yêu cầu:
public class Options
{
String product_option_id;
String option_id;
String name;
String type;
String required;
List<OptionValue> option_value;
// get set stuff here
public class OptionValue
{
String product_option_value_id;
String option_value_id;
String name;
String image;
String price;
String price_prefix;
// get set stuff here
}
}
Xin chào Asim, bạn có thể hiển thị Trình phân tích cú pháp Json của bạn không? – Kansen
Đã thêm phần có liên quan. Tôi đang sử dụng Gson để phân tích cú pháp được thực hiện bởi thư viện đó bằng cách sử dụng hàm Gson.fromJson (chuỗi, lớp). – Asim
Bạn không thể đạt được điều này bằng cách sử dụng 'GSON.fromJson (String json, Class classOfT)', bạn sẽ phải xác định adapter của bạn ... cho phép nói 'StrangeJsonAdapter' bằng cách mở rộng lớp' com.google.gson.TypeAdapter' .. sau đó sử dụng phương thức 'StrangeJsonAdapter.fromJson (String json)' để giải mã json của bạn. –