`

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>

分享到:
评论

相关推荐

    java-json.jar.zip

    Java JSON.jar.zip是一个压缩包,其中包含了一个名为`java-json.jar`的Java库,这个库主要功能是处理XML和JSON之间的转换。XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛用于...

    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-...

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

    在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...

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

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

    douglascrockford-JSON-java-dced076

    在" douglascrockford-JSON-java-dced076 "这个压缩包中,可能包含了Douglas Crockford,JSON的创始人之一,对于JSON在Java环境下的实现和使用的一些示例或工具。 1. **JSON的基本结构:** JSON数据以键值对的形式...

    java-json.jar

    对于"java-json.jar"这个特定的文件,它很可能是Sqoop在处理JSON数据时使用的库,因为JSON是常见的数据交换格式,特别是在大数据处理中。 首先,我们需要检查 Sqoop 的配置。确保所有必要的配置参数,如数据库连接...

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

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

    jersey-json-1.7.jar

    【jersey-json-1.7.jar】是Java RESTful Web服务框架Jersey的一个扩展模块,主要专注于处理JSON(JavaScript Object Notation)数据格式。Jersey是JAX-RS(Java API for RESTful Web Services)规范的参考实现,它...

    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一起使用而...

    java-json包

    JSON-LD(Linked Data)是JSON的一种扩展,用于表示语义网数据,增加了链接和上下文信息。 总的来说,Java中的JSON处理涉及到多个库和方法,选择哪种库取决于项目需求,如性能、易用性、灵活性等因素。在实际开发...

    struts2-json-plugin-2.3.8.jar

    在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...

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

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

    json-rpc-for-java

    继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...

    JSON Schema 生成库——json-schema-inferrer(java版).rar

    `json-schema-inferrer`是针对Java平台的一个工具库,它的主要功能是从JSON实例数据生成对应的JSON Schema,方便开发者快速构建符合规范的数据模型。 `json-schema-inferrer`库的使用可以分为以下几个关键知识点: ...

    beetl-json

    【beetl-json】是一个专为Java开发人员设计的库,用于将后端处理的数据转换成JSON(JavaScript Object Notation)格式,以便于前端应用程序进行交互和展示。JSON是一种轻量级的数据交换格式,因其易读性、易写性和...

    JAVA-JSON工具转换类

    在JAVA开发中,处理JSON数据通常需要借助特定的库来完成,如本话题中提到的`json-lib`和`ezmorph`。 `json-lib`是一个Java语言实现的JSON库,它提供了多种数据类型到JSON的转换,包括JavaBean、Map、List、数组等。...

    JSON-RPC-Java实例

    JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...

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

    在给定的压缩包中,`JSON Schema 校验库——json-schema-validator(java版本).pdf`可能是该库的使用指南或API文档,可以帮助开发者深入理解如何在Java项目中有效利用`json-schema-validator`进行JSON数据验证。...

    markdown-to-json:将Markdown内容转换为JSON,以便使用React,React Native和类似功能轻松呈现在前端

    @ moox / markdown-to-json 将降价内容转换为JSON 这个包是最小化的markdown预处理程序,可以很容易地在JS环境(如React,React Native等)中呈现markdown。 它旨在在运行时之前使用: 您将markdown文件转换为...

Global site tag (gtag.js) - Google Analytics