我正在使用gson解析json字符串。它与以下内容类似:
{
"ACode": "aa",
"RCode": "rr",
"Errors": "e1,e2,e3"
}我认为错误应该是一个正确的json数组,但我无法控制它。
我希望将错误放入java中的数组或集合中。使用逗号作为分隔符的String.split很容易做到。然而,我是gson的新手,我不知道我是否会忽略它提供的解析逗号分隔字符串的功能。
有没有人知道gson是否可以自动处理这个问题?
发布于 2014-04-15 07:18:41
我想把错误放到一个数组或集合中。
试试这个
String json = "{\"ACode\": \"aa\",\"RCode\": \"rr\", \"Errors\": \"e1,e2,e3\" }";
class ErrorsDeserializer implements JsonDeserializer<String[]> {
public String[] deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
return ((JsonObject) json).getAsJsonPrimitive("Errors").getAsString().split(",");
}
}
Gson gson1 = new GsonBuilder().registerTypeAdapter(String[].class, new ErrorsDeserializer())
.create();
String[] errors = gson1.fromJson(json, String[].class);
for (String error : errors) {
System.out.println(error);
}发布于 2014-04-15 07:55:26
您可以创建一个带有变量"ACode“、"RCode”、"Errors“的类,然后使用gson将其转换为该类,CustomObject obj2 = gson.fromJson(json,CustomObject .class);
https://stackoverflow.com/questions/23071765
复制相似问题