将JSON对象反序列化为String Android

时间:2014-12-05 06:25:37

标签: android json

我正在尝试实现反序列化以将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();

2 个答案:

答案 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");
    ...
}