Tôi muốn chuyển bộ sưu tập Danh sách khác nhau sang lớp TypeToken trong GSON. Đây là lớp học của tôiCách sử dụng tùy chỉnh chung trong lớp GSON TypeToken?
public class ConvertToObject<T> {
public T MappFrom(InputStream is)
String json = ConvertJsonInputStream.toString(is);
Gson gson = new Gson();
Type typeOfDest = new TypeToken<T>() {
}.getRawType();
T lstObject = gson.fromJson(json, typeOfDest);
return lstObject ;
}
}
Bây giờ tôi muốn nhanh chóng lớp học của tôi theo cách khác nhau Giống như những:
AssetManager am = getApplicationContext().getAssets();
InputStream is = am.open("form.txt");
ConvertToObject<List<Form>> co = new ConvertToObject<List<Form>>();
List<Form> JsonForm = co.MappFrom(is);
InputStream is2 = am.open("Messages.txt");
ConvertToObject<List<Messages>> co = new ConvertToObject<List<Messages>>();
List<Messages> JsonForm = co.MappFrom(is2);
Tôi có 27 file txt Json trong thư mục tài sản của tôi và tôi muốn phân tích những tập tin JSON txt vào các lớp thích hợp của họ. Tôi nên làm như thế nào?
ngồi biên tập: Bằng cách này tôi bắt một ngoại lệ:
Caused by: java.lang.ClassCastException: com.google.gson.internal.StringMap cannot be cast to com.mypackage.Form
Rất tốt, cảm ơn bạn đã chia sẻ phần mềm answare. –