`

JackJson - JSON to Java

 
阅读更多
public class People implements Serializable{
        private Long id;
        private String name;
        private Integer age;

        public People() {
        }

        public People(Long id, String name, Integer age) {
            this.id = id;
            this.name = name;
            this.age = age;
        }

        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        @Override
        public String toString() {
            return "People{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
        }
    }

 

public class A<E,F>{
        private E e;
        private F f;

        public F getF() {
            return f;
        }

        public void setF(F f) {
            this.f = f;
        }

        public E getE() {
            return e;
        }

        public void setE(E e) {
            this.e = e;
        }
    }

 

 

public class JsonTest {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper(); // create once, reuse
        mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true)
            .configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
        TypeFactory typeFactory = mapper.getTypeFactory();

        //json to pojo
        String jsonSource = "{id:1,name:'liyuan',age:20}";
        People people = mapper.readValue(jsonSource, People.class);  //recommend
        people = mapper.readValue(jsonSource,new TypeReference<People>(){});
        people = mapper.readValue(jsonSource, typeFactory.constructType((People.class)));

        //json to map
        Map<String,Object> map = mapper.readValue(jsonSource,new TypeReference<HashMap<String,Object>>(){});  //recommend
        System.out.println(mapper.writeValueAsString(map));
        map = mapper.readValue(jsonSource, typeFactory.constructMapType(HashMap.class, String.class, Object.class));
        System.out.println(mapper.writeValueAsString(map));

        //json to node
        JsonNode root = mapper.readTree(jsonSource);
        System.out.println(root.get("id").asLong());
        System.out.println(root.get("name").asText());

        //json to array
        jsonSource = "[{id:1,name:'liyuan',age:20},{id:2,name:'xiaoming',age:15}]";
        People[] arr = mapper.readValue(jsonSource, new TypeReference<People[]>(){});
        System.out.println(mapper.writeValueAsString(arr));
        arr = mapper.readValue(jsonSource, typeFactory.constructArrayType(People.class));
        System.out.println(mapper.writeValueAsString(arr));

        //json to list
        List<People> list = mapper.readValue(jsonSource, new TypeReference<List<People>>(){});
        System.out.println(mapper.writeValueAsString(list));
        list = mapper.readValue(jsonSource, typeFactory.constructCollectionType(ArrayList.class,People.class));
        System.out.println(mapper.writeValueAsString(list));

        //json to generic
        jsonSource = "{e:{id:1,name:'liyuan',age:20},f:{id:2,name:'xiaoming',age:15}}";
        A<People,People> generic = mapper.readValue(jsonSource, new TypeReference<A<People,People>>(){});
        System.out.println(mapper.writeValueAsString(generic));
        generic = mapper.readValue(jsonSource, typeFactory.constructParametricType(A.class,People.class,People.class));
        System.out.println(mapper.writeValueAsString(generic));
    }
}

 

<audio controls="controls" style="display: none;"></audio>

分享到:
评论

相关推荐

    android-json-0.0.20131108.vaadin1-API文档-中文版.zip

    赠送jar包:android-json-0.0.20131108.vaadin1.jar; 赠送原API文档:android-json-0.0.20131108.vaadin1-javadoc.jar; 赠送源代码:android-json-0.0.20131108.vaadin1-sources.jar; 赠送Maven依赖信息文件:...

    jackson-jaxrs-json-provider-2.7.8-API文档-中英对照版.zip

    赠送jar包:jackson-jaxrs-json-provider-2.7.8.jar; 赠送原API文档:jackson-jaxrs-json-provider-2.7.8-javadoc.jar; 赠送源代码:jackson-jaxrs-json-provider-2.7.8-sources.jar; 赠送Maven依赖信息文件:...

    jackson-jaxrs-json-provider-2.7.8-API文档-中文版.zip

    赠送jar包:jackson-jaxrs-json-provider-2.7.8.jar; 赠送原API文档:jackson-jaxrs-json-provider-2.7.8-javadoc.jar; 赠送源代码:jackson-jaxrs-json-provider-2.7.8-sources.jar; 赠送Maven依赖信息文件:...

    activiti-json-converter-5.21.0-API文档-中英对照版.zip

    赠送jar包:activiti-json-converter-5.21.0.jar; 赠送原API文档:activiti-json-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-json-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...

    oshi-json-3.4.2-API文档-中文版.zip

    赠送jar包:oshi-json-3.4.2.jar; 赠送原API文档:oshi-json-3.4.2-javadoc.jar; 赠送源代码:oshi-json-3.4.2-sources.jar; 赠送Maven依赖信息文件:oshi-json-3.4.2.pom; 包含翻译后的API文档:oshi-json-...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...

    jersey-json-1.9-API文档-中英对照版.zip

    赠送jar包:jersey-json-1.9.jar; 赠送原API文档:jersey-json-1.9-javadoc.jar; 赠送源代码:jersey-json-1.9-sources.jar; 赠送Maven依赖信息文件:jersey-json-1.9.pom; 包含翻译后的API文档:jersey-json-...

    android-json-0.0.20131108.vaadin1-API文档-中英对照版.zip

    赠送jar包:android-json-0.0.20131108.vaadin1.jar; 赠送原API文档:android-json-0.0.20131108.vaadin1-javadoc.jar; 赠送源代码:android-json-0.0.20131108.vaadin1-sources.jar; 赠送Maven依赖信息文件:...

    java-json.jar.zip

    这个jar包可以实现xml与json字符串互相转化的功能。通过常我们反序列化时都习惯用json,但有些接口仍然使用xml,那么可以借助这个工具来实现xml转换json了。

    activiti-json-converter-5.21.0-API文档-中文版.zip

    赠送jar包:activiti-json-converter-5.21.0.jar; 赠送原API文档:activiti-json-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-json-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...

    基于java的开发源码-JSON类库 Flexjson.zip

    基于java的开发源码-JSON类库 Flexjson.zip 基于java的开发源码-JSON类库 Flexjson.zip 基于java的开发源码-JSON类库 Flexjson.zip 基于java的开发源码-JSON类库 Flexjson.zip 基于java的开发源码-JSON类库 Flexjson...

    jersey-json-1.9-API文档-中文版.zip

    赠送jar包:jersey-json-1.9.jar; 赠送原API文档:jersey-json-1.9-javadoc.jar; 赠送源代码:jersey-json-1.9-sources.jar; 赠送Maven依赖信息文件:jersey-json-1.9.pom; 包含翻译后的API文档:jersey-json-...

    fastjson-jaxrs-json-provider-0.3.1-API文档-中文版.zip

    赠送jar包:fastjson-jaxrs-json-provider-0.3.1.jar; 赠送原API文档:fastjson-jaxrs-json-provider-0.3.1-javadoc.jar; 赠送源代码:fastjson-jaxrs-json-provider-0.3.1-sources.jar; 赠送Maven依赖信息文件:...

    oshi-json-3.4.2-API文档-中英对照版.zip

    赠送jar包:oshi-json-3.4.2.jar; 赠送原API文档:oshi-json-3.4.2-javadoc.jar; 赠送源代码:oshi-json-3.4.2-sources.jar; 赠送Maven依赖信息文件:oshi-json-3.4.2.pom; 包含翻译后的API文档:oshi-json-...

    enzyme-to-json, 检测你的酶包装.zip

    enzyme-to-json, 检测你的酶包装 enzyme-to-json 转换酶包装与与 Jest测试的格式兼容。安装$ npm install --save-dev enzyme-to-json用法序列化程序是使用 enzyme-to-

    基于java的开发源码-JSON查询语言 Jaql.zip

    基于java的开发源码-JSON查询语言 Jaql.zip 基于java的开发源码-JSON查询语言 Jaql.zip 基于java的开发源码-JSON查询语言 Jaql.zip 基于java的开发源码-JSON查询语言 Jaql.zip 基于java的开发源码-JSON查询语言 Jaql...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    JSON Schema 校验库——json-schema-validator(java版本).rar

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    jquery和struts2结合使用的jar包

    ndjson-to-json:将NDJSON转换为JSON

    安装npm install -g ndjson-to-json 用法将json打印到stdout: ndjson-to-json ndjson-file.json 将json输出到新文件: ndjson-to-json ndjson-input.json -o output.json 与npx ndjson-to-json file.json一起使用而...

    ig-json-parser, java项目的快速JSON解析器.zip

    ig-json-parser, java项目的快速JSON解析器 ig-json-parser java项目的快速JSON解析器。正在启动最简单的入门方法是查看maven示例。 有关更全面的示例,请查看单元测试或者演示。 Gradle对于Java项目,要使用这个库...

Global site tag (gtag.js) - Google Analytics