• 技术文章 >Java >java教程

    JAVA的json怎么解析

    anonymityanonymity2019-05-29 09:19:46原创2588
    一、什么是JSON

    JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于阅读和编写,同时也易于解析和生成,并有效地提升网络传输效率。

    二、JSON 语法

    (1)数据在名称/值对中

    (2)数据由逗号分隔

    (3)大括号保存对象

    (4)中括号保存数组

    三、Java中JSON的生成与解析的四种方式(简单的Demo):

    一个实体类:用于与JSON数据进行相互转换

    public class Person {
        private String name;
        private String sex;
        private int age;
        public Person(String name, String sex, int age) {
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public String getSex() {
            return sex;
        }
        public int getAge() {
            return age;
        }
        @Override
        public String toString() {
            return "Person{name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}';
        }
    }

    (1)利用传统方式:

    由实体类生成Json字符串:

    public Person getPerson(){
        return new Person("张三", "男", 25);
    }
    @Test
    public void EntityToJson(){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", getPerson().getName());
        jsonObject.put("sex", getPerson().getSex());
        jsonObject.put("age", getPerson().getAge());
        System.out.println(jsonObject.toString());
    }

    由Json字符串生成实体类:

    @Test
    public void JsonToEntity(){
        String jsonString = "{\"sex\":\"男\",\"name\":\"张三\",\"age\":25}";
        JSONObject jsonObject = new JSONObject(jsonString);
        Person person = new Person(jsonObject.get("name").toString(), jsonObject.get("sex").toString(), Integer.valueOf(jsonObject.get("age").toString()));
        System.out.println(person.toString());
    }

    (2)利用Jackson方式:

    由实体类生成Json字符串:

    @Test
    public void EntityToJson() throws IOException {
        Person person = new Person("张三", "男", 25);
        ObjectMapper objectMapper = new ObjectMapper();
        String jsonString = objectMapper.writeValueAsString(person);
        System.out.println(jsonString);
    }

    由Json字符串生成实体类:

    @Test
    public void JsonToEntity() throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";
        Person person = objectMapper.readValue(jsonString, Person.class);
        System.out.println(person);
    }

    (3)利用GSON方式:

    由实体类生成Json字符串:

    @Test
    public void EntityToJson(){
        Person person = new Person("张三", "男", 25);
        Gson gson = new Gson();
        String jsonString = gson.toJson(person);
        System.out.println(jsonString);
    }

    由Json字符串生成实体类:

    @Test
    public void JsonToEntity(){
        String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";
        Gson gson = new Gson();
        Person person = gson.fromJson(jsonString, Person.class);
        System.out.println(person.toString());
    }

    (4)利用FastJSON方式

    由实体类生成Json字符串:

    @Test
    public void EntityToJson(){
        Person person = new Person("张三", "男", 25);
        Object jsonString = JSON.toJSON(person);
        System.out.println(jsonString.toString());
    }

    由Json字符串生成实体类:

    @Test
    public void JsonToEntity(){
        String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";
        Person person = JSON.parseObject(jsonString, Person.class);
        System.out.println(person.toString());
    }

    以上就是JAVA的json怎么解析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java json
    上一篇:eclipse怎么改包名 下一篇:jsp能做什么
    Web大前端开发直播班

    相关文章推荐

    • 什么是json数据解析• 怎么遍历json数组• json用什么解析• package.json是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网