ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Json入门学习笔记:json对象格式、用Gson和Fastjson解析json、以及向ieda导入Gson和Fastjson的jar包

2021-03-09 18:03:27  阅读:187  来源: 互联网

标签:Fastjson info String id json Gson name


JSON文件学习笔记

文章目录


json文件特性

json是一种轻量级的数据交换格式,相比较于xml文件,json文件具有占用空间更小,传输更快的优势。


一、json对象格式

一个对象由一个大括号表示,
括号中通过一个个键值对来描述对象的属性(可以理解为大括号中包含的一个个键值对)
格式:
键与值之间使用冒号连接,多个键值队之间用逗号分隔,
键值对的键应该用引号引用(通常java解析时,键不使用引号会报错,但是js能够正常解析)
键值对的值可以是js中任意类型的数据(也可以是数组)。
实例:
{
  “name”:“aaa”,
  “info”:“bbb”,
  “pengyou”:[“ccc”,“ddd”,{
      “name”:“zhangsan”,
      “age”:“23”
    }],
  “hh”:{
    “info”:“ddd”,
    “length”:“12m”
  }
}

二、json的解析

1.jar包的下载以及导入

由于JDK没有自带的jar解析工具,因此为了能够解析json文件,我们需要手动导入Gson和Fastjson的jar包。

首先前往github下载jar包
下载地址:
Gson:
https://github.com/google/gson.
Fastjson:
https://github.com/alibaba/fastjson
.

然后在idea的项目目录下创建lib文件夹,将刚才下载的文件加入其中:
在这里插入图片描述
选择File-Project Structure
在这里插入图片描述
在Libraries中添加jar包,点击ok导入成功。
在这里插入图片描述

2.谷歌的Gson使用使用方法

首先创建book类

public class Book {
    int id;
    String name;
    String info;

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

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getInfo() {
        return info;
    }

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

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

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

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

将类转化为json

需要调用Gson类的toJson方法:

    public static void main(String[] args) {
        Gson g = new Gson();
        String json = g.toJson(new Book(10,"Jack","good man"));
        System.out.println(json);
    }

输出:
在这里插入图片描述

将json转化为类

Gson g = new Gson();
Book b1 = g.fromJson("{\"id\":10,\"name\":\"Jack\",\"info\":\"good man\"}",Book.class);
System.out.println(b1);

输出结果:
在这里插入图片描述

将json转化为集合

这里对该json文件进行转化:
在这里插入图片描述
代码如下:

Gson g = new Gson();
        HashMap data = g.fromJson("{\n" +
                "    \"name\":\"aaa\",\n" +
                "    \"info\":\"bbb\",\n" +
                "    \"pengyou\":[\"ccc\",\"ddd\",{\n" +
                "                        \"name\":\"zhangsan\",\n" +
                "                        \"age\":\"23\"\n" +
                "                        }],\n" +
                "    \"hh\":{\n" +
                "        \"info\":\"ddd\",\n" +
                "        \"length\":\"12m\"\n" +
                "        }\n" +
                "}",HashMap.class);
        //然后对其中的内容进行遍历
        for ( Object s: data.keySet()) {
            System.out.println(data.get(s));
        }

输出结果:
在这里插入图片描述

3.阿里的Fastjson使用方法

将类转化为json

使用静态方法toJSONString

String json = JSON.toJSONString(new Book(10, "Jack", "good man"));
System.out.println(json);

输出结果:
在这里插入图片描述

将json转化为类

使用静态方法parseObject
代码如下:

Book b = JSON.parseObject("{\"id\":10,\"info\":\"good man\",\"name\":\"Jack\"}",Book.class);
System.out.println(b);

输出如下:
在这里插入图片描述

将json转化为集合

使用静态方法parseObject,配合TypeReference使用。

 HashMap data = JSON.parseObject("{\n" +
                "    \"name\":\"aaa\",\n" +
                "    \"info\":\"bbb\",\n" +
                "    \"pengyou\":[\"ccc\",\"ddd\",{\n" +
                "                        \"name\":\"zhangsan\",\n" +
                "                        \"age\":\"23\"\n" +
                "                        }],\n" +
                "    \"hh\":{\n" +
                "        \"info\":\"ddd\",\n" +
                "        \"length\":\"12m\"\n" +
                "        }\n" +
                "}",new TypeReference<HashMap<String, String>>() {
        });
        for ( Object s: data.keySet()) {
            System.out.println(data.get(s));
        }
        

输出结果:在这里插入图片描述

4.java中json文件的读取和保存

在上面我们对json字符串进行了解析,然后将其转化为了自定义的类或者是集合,那么对于从外界得到的json文件我们应该怎么去读取,对于生成的json字符串我们应该怎么去写出?
。。。等待更新


总结

json文件在java的开发中使用频率很高,在开发时需要给别人回复json文件或者读取别人的json文件,因此要重点掌握json的使用。

标签:Fastjson,info,String,id,json,Gson,name
来源: https://blog.csdn.net/weixin_44046121/article/details/113935008

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有