📜  如何在Java中解析 JSON(1)

📅  最后修改于: 2023-12-03 15:24:32.851000             🧑  作者: Mango

如何在Java中解析JSON

JSON是一种轻量级的数据交换格式,其在数据传输和存储方面具有广泛的应用。在Java中,我们可以通过一些库来解析和操作JSON数据,本文将介绍如何使用常见的JSON库来解析JSON数据。

Gson

Gson是Google提供的Java库,可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。下面是使用Gson来解析JSON的示例:

import com.google.gson.Gson;

public class JsonParser {

    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"Tom\", \"age\":21}";
        Gson gson = new Gson();
        Person person = gson.fromJson(jsonStr, Person.class);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }

    static class Person {
        String name;
        int age;
        
        public String getName() {
            return name;
        }
        
        public int getAge() {
            return age;
        }
    }
}

上述代码中,我们通过Gson的fromJson()方法将一个JSON字符串转换成Person对象,从而可以方便地获取其中的各个属性值。

Jackson

Jackson是另一个常用的Java JSON库,和Gson类似,可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。下面是使用Jackson来解析JSON的示例:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonParser {

    public static void main(String[] args) throws Exception {
        String jsonStr = "{\"name\":\"Tom\", \"age\":21}";
        ObjectMapper mapper = new ObjectMapper();
        Person person = mapper.readValue(jsonStr, Person.class);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }

    static class Person {
        String name;
        int age;
        
        public String getName() {
            return name;
        }
        
        public int getAge() {
            return age;
        }
    }
}

上述代码中,我们通过Jackson的readValue()方法将一个JSON字符串转换成Person对象,从而可以方便地获取其中的各个属性值。

JSON-B

JSON-B是Java EE8中新增的一项标准,可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。下面是使用JSON-B来解析JSON的示例:

import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;

public class JsonParser {

    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"Tom\", \"age\":21}";
        Jsonb jsonb = JsonbBuilder.create();
        Person person = jsonb.fromJson(jsonStr, Person.class);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }

    static class Person {
        String name;
        int age;
        
        public String getName() {
            return name;
        }
        
        public int getAge() {
            return age;
        }
    }
}

上述代码中,我们通过JSON-B的fromJson()方法将一个JSON字符串转换成Person对象,从而可以方便地获取其中的各个属性值。

总结

本文介绍了三个常用的Java JSON库——Gson、Jackson和JSON-B,它们均可以轻松完成JSON数据的解析和操作。无论是哪种JSON库,我们都可以通过简单的代码实现与JSON数据的交互,方便快捷。