JSON----Json在JavaScript和Java中的作用和用法

JSON作用

json的存在有两种形式,这两种形式可以互转

  1. 对象的形式存在,我们叫它json对象。
    当JSON是对象,我们可以把它转换为字符串,方便我们在多种语言中来回交互传递
  2. 字符串的形式存在,我们叫它json字符串。
    当JSON是字符串,这种字符串可以被各种语言识别,我们可以在一种语言中,把对象(对象必须不含函数)转换成字符串,然后在另一种语言中使用JSON把字符串转换为对象,从而实现数据交互。

数据交互指的是客户端和服务器之间业务数据的传递格式

JSON在JavaScript中的作用

作用:
把JS中的数据转换为其他语言可理解的数据,向外传递数据,或者接受外来数据,并转换为JS可理解的语言

JSON的定义

json是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,
多组键值对之间进行逗号进行分隔。

JSON的访问

json本身是一个对象。json中的key我们可以理解为是对象中的一个属性。json中的key访问就跟访问对象的属性一样: json对象.key

把对象转换为字符串之stringify

  1. 首先,我们在JS中创建一个对象:var obj={"name":"牛蛙","age":18,"Gender":"小青年"};
    注意,我们这里创建的对象,属性名也必须加上双引号
  2. 调用JSON的stringify(对象名)方法,即可把对象转换为字符串

在这里插入图片描述

把字符串转换为对象之parse

  1. 字符串可以是我们自己定义的,但自己定义的字符串必须符合创建对象时候的规格。
    如:'var obj={"name":"牛蛙","age":18,"Gender":"小青年"}';注意要单引号
    字符串也可以为我们用JSON将对象转换成的字符串
  2. 然后调用JSON的parse()方法

在这里插入图片描述

eval()

在js中eval()可以将一段字符串转换为代码进行执行
如:
在这里插入图片描述
所以也可以利用eval()这个特性,把字符串转换为对象

利用eval将字符串转换为对象

在这里插入图片描述
当这样用的时候,记得在字符串两边加上括号

JSON在Java中的作用

一般就是数据转换,然后传递到外部或者接受外部传来的数据并处理,所以可以说,JSON就是用于数据交互传递的

  1. JavaBean和JSON的互转
  2. List和JSON的互转
  3. Map和JSON的互转

Java使用JSON前的准备工作

  1. 需要导入gson的jar包
  2. 如果要用Test注解,则需要导入两个jar包
    在这里插入图片描述

JavaBean和JSON的互转

  1. JavaBean转换为JSON
    一般用于将Java中的数据转换为JSON好方便向外传输
    在这里插入图片描述
    person是随便创建的JavaBean类
  2. JSON转JavaBean
    一般用于接收的外部数据上面,将外部数据转换为JavaBean
    在这里插入图片描述

List和JSON的互转

  1. List转JSON
    在这里插入图片描述
  2. JSON转LIst
    这个特殊一点,因为直接转的话,转过来的List其中的存储的数据类型会发生变化,在取出其中数据的时候,会发生数据类型转换错误,所以我们需要在JSON对象的fromJson方法的第二个参数上做一点手脚
    第一步:我们需要创建一个类,类名随便,这个类我们需要继承一个东西
    如下:
    在我们导入的JSON的jar包中有这样一个反射:在这里插入图片描述
    就是这个,我们创建的这个类就需要继承这个东西
    然后如图:在这里插入图片描述
    这个就是我随便创建的类,注意要继承TypeToken,然后后面写一个泛型,泛型类型就是我们JSON需要转换成的List类型
    这样,这个类就完成了
    然后在我们Json转List这里:传入的第二个参数这样写在这里插入图片描述
    创建的类的实例.getType(),即可
    然后就转换成功了,List里面的数据也可转换为我们一开始向List中传入的数据类型了==

Map和Json的互转

  1. Map转Json
    在这里插入图片描述一样的配方,一样的操作
  2. Json转Map
    和Json转List一样,需要写一个类,创建这个类的实例,引用这个实例的getType()方法作为fromJson的第二个参数
    创建的类如下:在这里插入图片描述
    转换!
    在这里插入图片描述

用匿名类实现Json向List和Map的转换

直接创建类来用于Json向集合转换势必会造成我们在实际开发中的资源浪费,所以我们可以直接使用匿名内部类来代替直接创建的类
如图:在这里插入图片描述
只红线部分更改
即在fromJson的第二个参数里传入new TypeToken<T>(){}.getType()即可,这里面的T表示一个泛型的类型,在实际操作中,把T换成我们Json需要转换成的集合类型即可

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值