栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

两分钟带你了解 JSON

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

两分钟带你了解 JSON

欢迎关注我的私人博客, 以及我的公众号【一起学数据结构与算法】,和我一起成长~!

什么是 JSON

JSON(Javascript Object Notation,JS对象简谱)是一种数据交换格式。

将编程语言中的数据类型(比如数字、数组、字符串、对象等)转化为 JSON 字符串就可以在网络中进行传输,然后编程语言再解析 JSON 文档就可以将数据转换为对应的格式。

其中将某种语言的数据转化为 JSON字符串可以看做是编码,将 JSON 字符串转化为对应的数据可以看做是解码。

JSON 结构和语法

JSON 文件有一个基础元素和两个结构,基础元素指的就是键值对,两个结构指的是对象和数组。

  • 键值对的键是字符串,值可以是多种数据类型,比如字符串、数字、三种字面量(true,false,null)、数组或者对象。

    其中字符串是任意数量 Unicode 字符的集合,单独的字符就是一个单独的字符串,使用反斜线转义。

  • 对象是一组被大括号 {} 括起来的键值对的集合,每一个键值对之间采用 , 间隔;

  • 而数组则是一组被中括号 [] 括起来的值的集合,每一个值之间使用 , 分隔。

JSON 文件示例

下面所示例子是一个数组和集合的嵌套。

{
    "students" : [
        {
            "name" : "yyy",
            "age" : 18, 
        },

        {
            "name" : "zzz",
            "age" : 19,
        },
	]
}
Java 中 JSON 的编解码接口

以下是搬运的菜鸟教程

Java 没有内置的解析 JSON 的库,需要借助第三方类库,常见的类库有:

  • Gson: 谷歌开发的 JSON 库,功能十分全面。
  • FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
  • Jackson: 社区十分活跃且更新速度很快。

本节介绍的 API 是 FastJson 中的 API。

环境配置

在 Maven 构建的项目中,在 pom.xml 文件中加入以下依赖即可。


    com.alibaba
    fastjson
    1.2.47

Java对象和数组与JSON字符串的转换
方法作用
JSON.parseObject()从字符串解析 JSON 对象
JSON.parseArray()从字符串解析 JSON 数组
JSON.toJSonString(obj/array)将 JSON 对象或 JSON 数组转化为字符串
编码
public void testJson() {
    JSONObject object = new JSONObject();
    //string
    object.put("string","string");
    //int
    object.put("int",2);
    //boolean
    object.put("boolean",true);
    //array
    List integers = Arrays.asList(1,2,3);
    object.put("list",integers);
    //null
    object.put("null",null);

    System.out.println(object);
}

结果:

{"boolean":true,"string":"string","list":[1,2,3],"int":2}
解码
public void testJson2() {

  JSONObject object = JSONObject
      .parseObject("{"boolean":true,"string":"string","list":[1,2,3],"int":2}");
    
  //string
  String s = object.getString("string");
  System.out.println(s);
    
  //int
  int i = object.getIntValue("int");
  System.out.println(i);
    
  //boolean
  boolean b = object.getBooleanValue("boolean");
  System.out.println(b);
    
  //list
  List integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);
    
  integers.forEach(System.out::println);
    
  //null
  System.out.println(object.getString("null"));

}

结果:

string
2
true
1
2
3
null
参考

菜鸟教程

JSON官网

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531644.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号