由于Java(最新LTS版本是Java11)内置中没有支持JSON转换和解析的库, 我们需要使用第三方库.

常用的库有谷歌的Gson, 阿里的Fastjson, 谷歌开发人员fangyidong的json-simple等.

这是它们的github链接, 可以在download里下载最新的jar包:

其使用方法都大同小异, 在国内开发用得比较多的是Fastjson, 以下是它的使用简单举例:

package net.csdn.blog.java.json;

import com.alibaba.fastjson.JSON;
import java.util.List;

/**
 * 阿里巴巴fastjson使用简单举例
 */
public class FastjsonExamples {

    public static void main(String[] args) {
        Book book = new Book(12345,"书名","简介");

        //举例1:如何把对象转换为JSON
        String json = JSON.toJSONString(book);
        System.out.println(json); //输出:{"id":12345,"info":"简介","name":"书名"}

        //举例2:如何把JSON转换为对象
        //假设有JSON字符串: {"id":100,"name":"唐诗三百首","info":"文化学习"}
        Book newBook = JSON.parseObject("{\"id\":100,\"name\":\"唐诗三百首\",\"info\":\"文化学习\"}", Book.class);
        System.out.println(newBook.getName()); //输出:唐诗三百首

        //举例3:如何把JSON转换为集合
        //假设有JSON字符串:["张三","李四","王二"]
        List<String> strings = JSON.parseArray("[\"张三\",\"李四\",\"王二\"]", String.class);
        for (String s: strings) {
            System.out.print(s + " "); //输出:张三 李四 王二
        }
    }

    static class Book {
        private int id;
        private String name;
        private String info;

        public Book() { }

        public Book(int id, String name, String info) {
            this.id = id;
            this.name = name;
            this.info = info;
        }

        public int getId() {
            return id;
        }

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

        public String getName() {
            return name;
        }

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

        public String getInfo() {
            return info;
        }

        public void setInfo(String info) {
            this.info = info;
        }

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

注意事项:

1) 在Java中JSON的标签必须加双引号, 比如 {"id":12345,"name":"书名"}, 如果id和name不加双引号的话会解析出错

2) 如果用getClass()方法去查看上面的JSON.parseArray()的结果, 会发现是一个ArrayList.