我正在尝试实现反序列化以将json对象解析为字符串,但我的自定义反序列化类未被调用。
需要解析的JSON
{
"status": true,
"student": [
{
"id": 1,
"name": "",
"age": "",
"title": "",
}
]
}
我的可反序列化的课程
public class MyDeserializer implements JsonDeserializer<StudentData> {
@Override
public StudentData deserialize(JsonElement je, Type type, JsonDeserializationContext jdc) {
try {
String content = je.getAsJsonObject().get("student").getAsString();
return new Gson().fromJson(content, StudentData)
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
注册我的反序列化器: -
MyDeserializer myDeserializer = new MyDeserializer();
Gson gson = new GsonBuilder().registerTypeAdapter(NotificationResponse.class, myDeserializer).create();
mRestAdapter = new RestAdapter.Builder().setServer(baseUrl).setConverter(new GsonConverter(gson)).setLogLevel(RestAdapter.LogLevel.FULL).setRequestInterceptor(new RequestInterceptor()
{
@Override
public void intercept(RequestFacade requestFacade) {
}
}).build();
答案 0 :(得分:0)
我认为this教程将帮助您实现反序列化器(并可能会引入一些新概念)
试一试,看看它是否适合你!
答案 1 :(得分:0)
对于那些简单的事情,我不认为将Gson作为依赖项加入是值得的。
示例:
JSONObject jObj = new JSONObject(theJsonYouPostedAbove);
boolean status = jObj.getBoolean("status");
JSONArray jArr = jObj.getJSONArray("student");
for (int i = 0; i < jArr.length(); i++) {
JSONObject jo = jArr.getJSONObject(i);
int id = jo.getInt("id");
String name = jo.getString("name");
...
}