Сталкивались ли вы с ситуацией, когда данные, возвращаемые серверным интерфейсом, не являются фиксированными?
// Это определение интерфейса:
ArrayList<Student> students;
int counts;
// Вот как его сервер возвращает:
{"students" :[], "counts":0}
// А вот ещё один вариант ответа сервера:
{"students" :"", "counts":""}
В таких случаях всегда ли невозможно использовать инструменты вроде Gson и FastJson? Потому что они выдают ошибку! CastClassException!
При столкновении с такой ситуацией вам хочется сказать только одно: WTF!
/**
* Преобразование строки JSON в JavaBean
**/
String jsonString = "{"this":"jsonObjectString"}";
JavaBean bean = Sjson.jsonToObject(jsonString, JavaBean.class);
/**
* Преобразование JSONObject в JavaBean
**/
JSONObject jsonObject = new JSONObject("{"this":"jsonObjectString"}");
JavaBean bean = Sjson.jsonToObject(jsonObject, JavaBean.class);
/**
* Преобразование строки JSON в массив Java
**/
String jsonString = "[{"this":"jsonObjectString"},{"this":"jsonObjectString"}]";
ArrayList<JavaBean> beanList = Sjson.jsonToArray(jsonString, JavaBean.class);
/**
* Преобразование JSONArray в массив Java
**/
JSONArray jsonArray = new JSONArray("[{"this":"jsonObjectString"},{"this":"jsonObjectString"}]");
ArrayList<JavaBean> beanList = Sjson.jsonToArray(jsonArray, JavaBean.class);
Util.showDiff = true;
Key JavaBean Json value
this √ √ jsonObjectString
that √ × (Json Havn't)
they × √ jsonObjectString
them × × (Json Havn't)
Если у вас возникли какие-либо проблемы при использовании, пожалуйста, свяжитесь со мной. Также буду рад услышать ваши идеи и предложения.
Мне нравится писать код, но я всегда пишу его плохо.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )