我使用json
解析gson
字符串。它类似于:
{
"ACode": "aa",
"RCode": "rr",
"Errors": "e1,e2,e3"
}
我认为错误应该是一个正确的json
数组,但我无法控制它。
我希望将错误放入java
中的数组或集合中。使用带有逗号作为分隔符的String.split
这很容易。但是,我是gson
的新手,我不知道我是否会忽略它提供的解析逗号分隔字符串的功能。
是否有人知道gson
是否可以自动处理此问题?
答案 0 :(得分:0)
我想将错误放入java中的数组或集合中。
试试这个
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);
}
答案 1 :(得分:0)
你可以创建一个带变量的类&#34; ACode&#34;,&#34; RCode&#34;,&#34;错误&#34;然后使用gson将其转换为该类,CustomObject obj2 = gson.fromJson(json,CustomObject .class);