如何反序列化没有名称和动态的json对象?
问题描述:
我有这样的JSON:如何反序列化没有名称和动态的json对象?
{
"username": [
"A user with that username already exists."
],
"ruc": [
"user with this ruc already exists."
],
"code": [
"user with this code already exists."
],
"document_number": [
"user with this document number already exists."
]
}
属性的名称将是动态的和JSON的长度了。 我使用的是GSON工具,我创建了一个POJO,但没有名称,我无法引用此,这就是为什么我收到myError实例,为空。 这是我的POJO
public class MyError {
public Map<String, Object> message = new HashMap<>();
}
这是我GSON代码
myError = new Gson().fromJson(response.errorBody().string(), MyError.class);
而且我想显示的消息中这样每一个项目:
for (String key : myError.message.keySet()) {
Utils.showToast(getBaseContext(), "Message: " + myError.message.get(key) + " Field: " + key);
}
答
你可以尝试使用这个:
Map myError = new Gson().fromJson(s, Map.class);
或者,如果你想使用你的类的JSON应该是这样的:
{ "message": { "username": [ "A user with that username already exists." ], "ruc": [ "user with this ruc already exists." ], "code": [ "user with this code already exists." ], "document_number": [ "user with this document number already exists." ] } }
答
考虑使用GSON和Java本地JsonParser。
谢谢,我已经忘记了Gson的财产。我会尝试。 –
不客气!祝你好运! – broxhouse