【问题标题】:gson parse items from comma-separated-value string within a json valuegson 从 json 值中的逗号分隔值字符串中解析项目
【发布时间】:2014-04-14 22:49:52
【问题描述】:

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

{
    "ACode": "aa",
    "RCode": "rr",
    "Errors": "e1,e2,e3"
}

我认为错误应该是正确的json 数组,但我无法控制它。

我想将错误放入java 中的数组或集合中。这很容易使用String.split 和逗号作为分隔符。但是我是 gson 的新手,我不知道我是否会忽略它提供的解析逗号分隔字符串的功能。

有谁知道gson 是否可以自动处理这个问题?

【问题讨论】:

标签: java json csv gson


【解决方案1】:

我想将错误放入 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);
}

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-24
    • 2013-06-11
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2011-02-20
    • 2021-11-01
    相关资源
    最近更新 更多