`

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>

分享到:
评论

相关推荐

    jackJSON生成与解析JSON数据相关jar包.rar

    JackJSON则是Java中的一款库,它提供了JSON的生成和解析功能,使得开发者能够方便地处理JSON数据。本压缩包“jackJSON生成与解析JSON数据相关jar包.rar”包含了在Java项目中使用JackJSON所需的库文件。 首先,...

    jackson json 转 map 数值科学计数法的问题解决.docx

    Jackson 是一个流行的 Java 库,用于将 JSON 数据转换为 Java 对象或 Map。在使用 Jackson 将 JSON 转换为 Map 的过程中,可能会遇到科学计数法的问题。该问题的出现是因为 JSON 中的数值类型太多,在转换过程中可能...

    Json解析demo

    String jsonString = gson.toJson(yourJavaObject); // 将JSON字符串转换为Java对象 YourJavaClass yourObject = gson.fromJson(jsonString, YourJavaClass.class); ``` 在实际应用中,我们通常需要根据项目需求...

    json处理jar包合集.zip

    在Java中,处理JSON有多个流行的库,包括Gson、FastJson和JackJson。这些库提供了方便的方法来序列化Java对象为JSON字符串,以及反序列化JSON字符串回Java对象。 1. Gson Gson是Google提供的一个开源库,它能够将...

    java解析json方法总结

    据文档描述,FastJson在性能测试中超越了其他Java JSON解析库,包括声称为最快的JackJson。它支持JavaBean、集合、Map、日期和枚举类型,同时支持泛型和自省机制。FastJson不依赖于任何第三方库,可直接在Java SE ...

Global site tag (gtag.js) - Google Analytics