JSON是个什么东西?

JSON是什么?


JSON 是一种数据格式。它本身是一串字符串,只是它有固定格式的字符串,符合这个数据格式要求的字符串,我们称之为JSON。

JSON 常用来数据传输,因为它易于程序之前读写操作。

JSON 它其实是来自JavaScript对对象(Object)的定义。但是它作为数据格式来使用的时候,和JavaScript没有任何关系,它只是参照了JavaScript对对象定义的数据格式。

JSON 它可以服务任何语言,C、C++、Java、Objective-C、Python、Go、等,在各个语言中的字典、Map和JSON是类似的结构,所以它们之间可以相互转换。

通俗点说就是:

  • JSON 就是一种有规则字符串。
  • JSON 就是Key/Vaule存储,理论上Key支持String、Number,Value几乎支持所有类型。
  • JSON 因为语言都支持字符串(String)类型,所以都支持JSON格式作为交互。

JSON语法

JSON 语法规则

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 数据的书写格式是:{Key:Value}{Key:Array}

前面key是键,中间是英文的“:”(冒号),然后是值(可以是数组)。但是注意的是如果是字符串,严格来说都是英文双引号引起来的

json有2种类型:

  • 一种是对象,object -> {key:value,key:value,...} 
  • 另一种是数组,array -> [value,value,...] 

JSON 对象

JSON 对象在花括号中,对象可以包含多个名称/值对,如下代码所示:

{
    "name": "少年贝多芬",
    "age": 20,
    "birthday": "2000年01月01日",
}

JSON 数组

JSON数组在方括号("[]")中书写,数组可包含多个对象,如下“books”描述

{

        "books":[

                {

                        "name":"Java开发教程",

                        "price":"118"

                },

                {

                        "name":"C++开发案例",

                        "price":"99"

                }

        ]

}


Java解析和生成JSON 

这里我使用的是gson,需要引入gson.jar,在gson的开源网站即可下载

通用代码:

借助json数据来生成java对象的代码都是一致的:

Gson gson = new Gson();
BeanType bean = gson.fronJson(jsonData, BeanType.class);

字段名并不一致怎么办?

如果前端传过来的json 数据的key和我们java类的字段不一致,就需要在java类中手工进行指定。

@SerializedName() 注解

@SerializedName("money")
private String salary;

@SerializedName({"money", "salary"})  // 可以有多个备选值
private String salary;

生成json数据

Gson gson = new Gson();
String json = gson.toJson(需要转化的对象);

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值