后端json解析和交互

文章介绍了JSON的基本概念,作为轻量级的数据交换格式,它在前后端交互中扮演重要角色。后端获取前端发送的JSON数据时,不能用getParameter,而应通过IO流读取。之后,文章提到使用Gson库来方便地在Java对象和JSON数据之间进行映射,简化了转换过程。
摘要由CSDN通过智能技术生成

一、概述

  • 什么是json
    • JSON,全称是 JavaScript Object Notation,即 JavaScript对象标记法。
    • JSON是一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-Readable)格式。
    • JSON 的名称中虽然带有JavaScript,但这是指其语法规则是参考JavaScript对象的,而不是指只能用于JavaScript 语言。
    • JSON无论对于人,还是对于机器来说,都是十分便于阅读和书写的,而且相比 XML(另一种常见的数据交换格式),文件更小,因此迅速成为网络上十分流行的交换格式。
    • 近年来JavaScript已经成为浏览器上事实上的标准语言,JavaScript 的风靡,与JSON 的流行也有密切的关系。
    • 因为JSON本身就是参考JavaScript 对象的规则定义的,其语法与JavaScript定义对象的语法几乎完全相同。
    • JSON格式的创始人声称此格式永远不升级,这就表示这种格式具有长时间的稳定性,10 年前写的文件,10年后也能用,没有任何兼容性问题。
  • 语法格式
    • 数组(Array)用方括号(“[]”)表示。
    • 对象(0bject)用大括号(“{}”)表示。
    • 名称/值对(name/value)组合成数组和对象。
    • 名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
    • 并列的数据之间用逗号(“,”)分隔
  • 示例
{
	"name": "zhangsan",
	"age": 20,
	"addr": "翻斗大街翻斗花园2号楼1001室",
	"birthday": {
		"year": 2003,
		"month": 2,
		"day": 2
	},
	"nickname": [
		"hanhan",
		"daerduo"
	]
}

二、获取前端发送的json数据

  • 不能使用request.getParameter(),需要使用java的io流读取
//获取前端发来的数据,并进行处理(没有处理异常,大家自行完善)
StringBuilder stringBuilder = null;
String jsonString = null;
// 使用缓冲字符流(直接使用通过request得到的字节流也可以)
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));	
stringBuilder = new StringBuilder();
String str = "";
while ((str = bufferedReader.readLine()) != null) {
    stringBuilder.append(str);
}
bufferedReader.close();
// 获取处理好的json字符串
jsonString = stringBuilder.toString();

三、gosn

  • 前面获取到前端的json数据后,该如何转换为对应的实体对象呢?以及拿到数据库中的数据后,该如何将数据转换为json传给前端呢?
  • 放心,肯定不用我们自己去慢慢解析,转换,有现成的工具
  • GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串
  • 直接看下面这篇文章,说的细致,就不多说了
    Gson
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值