首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gson解析json值中逗号分隔值字符串中的项

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

Stack Overflow用户
提问于 2014-04-15 06:49:53
回答 2查看 3.4K关注 0票数 0

我正在使用gson解析json字符串。它与以下内容类似:

代码语言:javascript
运行
复制
{
    "ACode": "aa",
    "RCode": "rr",
    "Errors": "e1,e2,e3"
}

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2014-04-15 07:18:41

我想把错误放到一个数组或集合中。

试试这个

代码语言:javascript
运行
复制
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);
}
票数 0
EN

Stack Overflow用户

发布于 2014-04-15 07:55:26

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23071765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档