首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现Map和List的JSON值的Java包装类

实现Map和List的JSON值的Java包装类
EN

Stack Overflow用户
提问于 2014-12-12 17:54:52
回答 1查看 4.8K关注 0票数 1

是否有一个常用的库,它有用于以类型安全的方式表示json的类?我正在寻找一个json对象存储在Map中,json数组存储在列表中的地方。

我想做的是这样的:

代码语言:javascript
复制
myJson.get("myInt").asInt();
myJson.get("myString").asString();

.get()应该返回一个缺少的节点对象,因此不需要进行空检查。

Jackson是一个非常好的库,可以完成所有这些工作,但是Jackson JsonObject和JsonArray类并没有实现Map和List。

EN

回答 1

Stack Overflow用户

发布于 2014-12-12 18:05:13

您必须将JSON转换为所需的类型。下面的示例将其转换为Map<String,String>。如果无法转换,则会引发异常。

代码语言:javascript
复制
public class JsonMapExample {
    public static void main(String[] args) {

        String json = "{\"name\":\"mkyong\", \"age\":\"29\"}";

        Map<String,String> map = new HashMap<String,String>();
        ObjectMapper mapper = new ObjectMapper();

        try {       
            map = mapper.readValue(json, new TypeReference<HashMap<String,String>>(){});

        } catch (JsonMappingException e) {
            e.printStackTrace();
        }
    }
}

这通常是在通过网络发送序列化对象时发生的情况,在编组时会丢失类型安全性,然后通过解组将其添加到另一端。

请参见:

  • [http://jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/map/ObjectMapper.html#readValue(byte[],%20int,%20int,%20java.lang.Class)](http://jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/map/ObjectMapper.html#readValue(byte[],%20int,%20int,%20java.lang.Class%29)
  • http://www.mkyong.com/java/how-to-convert-java-map-to-from-json-jackson/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27449365

复制
相关文章

相似问题

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