JAVA中的JSON格式转换

一、概述

       JSON(JavaScript Object Notation)是一种数据交换格式,易于机器解析和生成,能有效地提升网络传输效率,因此学习JSON在Java中的生成和读取。JSON其本质是JS构建的对象的字符串表示方法。


二、格式表示

       JSON中,一个对象由一对大括号表示,括号内通过键值对描述对象的属性,数组用一对中括号表示,用逗号分隔。
       例如,在JAVA中表示以下Book类的一个对象:

class Book{
	String name;
	String info;
	Book[] relatedBooks;
}

       用JSON的格式表示一个Book类对象可以是:

{
“name”:”唐诗三百首”,
“info”:”记录了唐代的精彩诗篇”,
“relatedBooks” : [{“name”:“宋词精选”,”info”:”记录了宋朝的金典词作”},{“name”:”元曲名作”}]
}


三、 JSON文件在JAVA中常见的解析和生成方式

1, 使用Google的Gson包
       1) 将JAVA对象转换成JSON字符串:

String s = new GSON().toJSON(待转换的对象);

       2) 将JSON字符串转换成JAVA对象:

Book b = new GSON().fromJson( s , Book.class);

2,使用阿里的FastJSON包
       1) 将JAVA对象转换成JSON字符串:

String s = JSON.toJSONString(待转换的对象);

       2) 将JSON字符串转换成JAVA对象:

Book b = JSON.parseObject( s , Book.class);

另附综合的测试Demo:

import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;


public class Demo7 {
    public static void main(String[] args) {
        Person p = new Person(18,"张三");
        Gson g = new Gson();
        String s1 = g.toJson(p);
        System.out.println(s1);
        System.out.println("-------------------------------");
        Person temp = g.fromJson(s1,Person.class);
        System.out.println(temp);
        System.out.println("-------------------------------");
        String s2 = JSON.toJSONString(p);
        System.out.println(s2);
        System.out.println("-------------------------------");
        temp = JSON.parseObject(s2,Person.class);
        System.out.println(temp);
    }
}

class Person{
    private int age;
    private String name;
    public Person(){};
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

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

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}

运行结果如图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值