后端代码:
List<User> users = JSON.parseArray("JSON数据",User.class)
前端代码:
//...省略请求接口方式代码段(往常怎样调用就怎样调用,只是数据格式的变化。)
...
//传入数据格式实例
[{"name":"zhangsan",age:"23"},{"name":"xiaohong","age":"25"}]
代码分析:
1.后端采用的阿里的JSON解析解决方案,parseArray方法是将json数据转换为集合,参数为String类型的JSON数据格式和需要转换为的对象的class属性。
2.name、age为属性用逗号分隔,zhangsan、23为值,值和属性用冒号分割,{} 所包含的相当于一个对象(众多属性及值的集合),{} 与 {}之间用逗号分隔,[] 包含的相当于一个对象集合。
3.这里采用阿里的依赖fastjson----https://mvnrepository.com/artifact/com.alibaba/fastjson
注:
1.JSON数据是一种数据格式而并非数据类型,这种格式通常用String类型存储或传输
2.有关xxx.class后的class属性解释:
3.有关JSON数据格式基本概念(滑稽.jpg):
接下来是我个人的一些见解:
1.前后端之间的数据传输,我一直有一些不爽,如在传二维数组通过链接直接传输时会将二维数组变为一位数组传输,以及传集合时的报错。这之间我本身也存在一些问题,比如对于请求头,HTTP协议,数据传输方面的不了解,以及秉着能不用再学习新的东西就不学,能不用就不用的偷懒方式让我耗费了一些时间,直到最近同事遇到了这个问题,我才想着要用正确的方式解决,大概是因为是好几个人的事所以我不太好掌控或测试,也可能是人多了所以自己也肃然起敬了吧。
2.class属性,这东西我当时把我用折腾了一番,因为我一直沙比式的想为啥这家伙可以点出方法和属性出来而且他为什么又可以定义类又可以当属性,他一定是在哪儿进行了定义,然后我翻阅了许多博客却还是对这个class的定义模糊,其中我翻阅到了java本身有一些不是自我开发的,而是由c、c++第三方语言来开发的知识点以及自我在查看源码无意中看到了native关键字,于是我顺着这个走到了javac、javah命令,以及编写了一些.h .c文件,其中有段有趣的回忆,我看着这个不太用到的javac命令,如此紧贴在一起的字母,在我脑海中一下就分开了,java、c。于是我想着我曾经学过的c,每次都要定义#<stdio.h>,好吧我又注意到了h字母身上,于是我发现一个字母就等于一个世界,好吧当我用javah成功生成了h文件之后,这一路的疑惑和迷茫稍微放松了一些,然后我目光凝视着class,然后我终于开了口所以这特么到底是什么鸡儿玩意啊,但是我心中明白了这家伙一定跟jvm有着某种交易,然后我秉着不想掉头发的心理放弃了这场与class对抗的战斗,之后长达几个月再也没有这样身心俱疲过了,果然搞计算机没点天赋和脑子是不行啊,于是我的理想由IT大佬变成了在老家开一家小卖部...................................直到刚刚写博客的时候,我在idea中看到金灿灿的class,我突然脑袋中显现出一堆关键字,this、super.......于是我发现这特娘的不就是关键字么,你说我管他干嘛,还去源码中找他定义的位置,原来是一开始我对class关键字的定义出现了偏差,才导致头发的掉落,然后我将目光移向了所有关键字,随之呵呵一笑的玩游戏去了,没错,我怂了。
3.JSON,json是一种数据格式,简单来说就是一堆数据,我用特定的方式来规定这堆数据,然后通过一些特殊字符来确立这一段数据属于什么,那一段数据属于什么,于是这段数据就有了语法一样,其实只是对数据进行的分类、整理。json没什么可谈的,吹一波阿里吧,阿里在解析json数据方面速度是最快的,这句话是百度的没错,毕竟我也没有用过其他json的解决方案。