JSON认识

json可以是json对象,也可以是json数组,数组又分为普通数组和对象数组。

以前端操作为展示:
1、json定义对象的格式:(花括号表示对象)
var 变量名={“键1”:值1,“键2”:值2,…}
//获取值的方式:变量名.键名
2、json定义数组的格式:(中括号表示数组)
第一种:普通的数组:var 变量名=[值1,值2,值3,…]
第二种:对象数组
var 数组名称=[{“键1”:值1,“键2”:值2},{},{}…];


一个常见的java使用实例:

package com.james;

import com.google.gson.annotations.SerializedName;

import java.util.List;

public class Book {
    public Book(){}
    private String id;

    /**
     * @SerializedName(value = “bookName”,alternate = {“Name”,“bn”})表示在反序列化时候可以使用bookName,Name,bn都可以被识别到,set到Book中的name属性;相应的在序列化的时候,name属性会被序列化为bookName字符串;
     */
    @SerializedName(value = "bookName",alternate = {"Name","bn"})
    private String name;

    private List<Book> bookList;

    private String[] args;

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

    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public List<Book> getBookList() {
        return bookList;
    }

    public void setBookList(List<Book> bookList) {
        this.bookList = bookList;
    }

    public String[] getArgs() {
        return args;
    }

    public void setArgs(String[] args) {
        this.args = args;
    }
}


package com.james;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

public class TestGson {
    public static void main(String[] args) {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        Book book = new Book("1", "《深入Java虚拟机》");
        List<Book> books = new ArrayList<>();
        books.add(new Book("1", "《深入Java虚拟机》"));
        books.add(new Book("2", "《OpenCV进阶》"));
        books.add(new Book("3", "《深入Android源代码》"));
        book.setBookList(books);
        String[] strs = new String[]{"《深入Java虚拟机》", "《Android插件编程》", "《OpenCV全解》"};
        book.setArgs(strs);
        String str = gson.toJson(book);
        System.out.println(str);

    }
}

输出结果:

{
  "id": "1",
  "bookName": "《深入Java虚拟机》",
  "bookList": [
    {
      "id": "1",
      "bookName": "《深入Java虚拟机》"
    },
    {
      "id": "2",
      "bookName": "《OpenCV进阶》"
    },
    {
      "id": "3",
      "bookName": "《深入Android源代码》"
    }
  ],
  "args": [
    "《深入Java虚拟机》",
    "《Android插件编程》",
    "《OpenCV全解》"
  ]
}

类库选择
Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。

下面是几个常用的 JSON 解析类库:

  1. Gson: 谷歌开发的 JSON 库,功能十分全面。

这里有两个对象,JsonObject,Gson

  1. FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。

这里有三个对象,JSON,JSONObject,JSONArray,后面两个是JSON的子类。

  1. Jackson: 社区十分活跃且更新速度很快。

这里有ObjectMapper对象
在这里插入图片描述
参考链接:
https://zhuanlan.zhihu.com/p/65224789
https://www.cnblogs.com/lone5wolf/p/10940869.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值