将JSON字符串解析为Java对象||将Java对象序列化为JSON字符串

Java对JSON数据的解析方式

(1)Gson

Gson是Google公司发布的一个开放源代码的库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串为Java对象。

将java对象序列化为JSON字符串:

public class Book {
    private String name;
    private int bookId;
    private String info;

    public Book() {}

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

    public String getName() {
        return name;
    }

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

    public int getBookId() {
        return bookId;
    }

    public void setBookId(int bookId) {
        this.bookId = bookId;
    }

    public String getInfo() {
        return info;
    }

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

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

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", bookId=" + bookId +
                ", info='" + info + '\'' +
                '}';
    }
    //为了代码简洁,省去get/set方法
}
    public static void main(String[] args) {
        Book book = new Book("三国演义", 1001, "讲述了三国时期的战乱故事");
        Gson gson = new Gson();//导入json的jar包
        String s = gson.toJson(book);//传入一个对象,将其序列化为JSON字符串
        System.out.println(s);
    }

结果:

将JSON字符串解析为Java对象:

    public static void main(String[] args) {
    	//导入json的jar包
        Gson gson = new Gson();
        //将JSON字符串解析为指定类的对象
        Book book = gson.fromJson("{\"name\":\"三国演义\",\"bookId\":1001,\"info\":\"讲述了三国时期的战乱故事\"}", Book.class);
        System.out.println(book);
    }

结果:


(2)FastJson

fastjson是阿里巴巴开发的库,作用与gson类似

将对象序列化为JSON字符串:

package com.kkb.task010307;
import com.alibaba.fastjson.JSON;//引入fastjson的jar包并导入

public class Demo4 {
    public static void main(String[] args) {
        Book book = new Book("西游记", 1005, "师徒四人西天取经");
        //将对象序列化为JSON字符串
        String jsonString = JSON.toJSONString(book);
        System.out.println(jsonString);
    }
}

 结果:

 将JSON字符串(JSON对象)解析为Java对象:

package com.kkb.task010307;
import com.alibaba.fastjson.JSON;

class Demo5 {
    public static void main(String[] args) {
        //将JSON字符串解析为Java对象
        Book book = JSON.parseObject("{\"bookId\":1005,\"info\":\"师徒四人西天取经\",\"name\":\"西游记\"}", Book.class);
        System.out.println(book);
    }
}

结果:

将JSON字符串(JSON数组)解析为数组:

package com.kkb.task010307;
import com.alibaba.fastjson.JSON;
import java.util.List;

public class Demo6 {
    public static void main(String[] args) {
        List<Object> objectList = JSON.parseArray("[1010,\"哈哈哈\",true,null]", Object.class);
        System.out.println(objectList);
    }
}

 结果:

猜你喜欢

转载自blog.csdn.net/m0_63270506/article/details/125619002