Java gson解析json值中逗号分隔的值字符串中的项

Java gson解析json值中逗号分隔的值字符串中的项,java,json,csv,gson,Java,Json,Csv,Gson,我正在使用gson解析json字符串。与此类似: { "ACode": "aa", "RCode": "rr", "Errors": "e1,e2,e3" } 我认为错误应该是一个适当的json数组,但我无法控制它 我想将错误放入java中的数组或集合中。使用String.split和逗号作为分隔符非常简单。然而,我是新来的gson,我不知道我是否会忽略它提供的解析逗号分隔字符串的功能 是否有人知道gson能否自动处理此问题 我想将错误放入java中的数组或集合中 试试

我正在使用
gson
解析
json
字符串。与此类似:

{
    "ACode": "aa",
    "RCode": "rr",
    "Errors": "e1,e2,e3"
}
我认为错误应该是一个适当的
json
数组,但我无法控制它

我想将错误放入
java
中的数组或集合中。使用
String.split
和逗号作为分隔符非常简单。然而,我是新来的
gson
,我不知道我是否会忽略它提供的解析逗号分隔字符串的功能

是否有人知道
gson
能否自动处理此问题

我想将错误放入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);
}
String json=“{\“ACode\”:“aa\”,“RCode\”:“rr\”,“Errors\”:“e1,e2,e3\”;
类ErrorsDeserializer实现JsonDeserializer{
公共字符串[]反序列化(JsonElement json,类型typeOfT,
JsonDeserializationContext)抛出JsonParseException{
return((JsonObject)json.getAsJsonPrimitive(“错误”).getAsString().split(“,”);
}
}
Gson gson1=新的GsonBuilder().registerTypeAdapter(字符串[].class,新的错误序列化程序())
.create();
String[]errors=gson1.fromJson(json,String[].class);
for(字符串错误:错误){
系统输出打印项次(错误);
}

您可以使用变量“ACode”、“RCode”、“Errors”创建一个类,然后使用gson将其转换为该类,CustomObject obj2=gson.fromJson(json,CustomObject.class)

我不知道gson中有任何自动处理它的功能,但最好的方法可能是编写一个自定义反序列化程序:有关更多信息,请查看