JSON官网:官网地址 (各种编程语言对应的工具应有尽有,前提能读英文)
json: json为前端后端以及网络传输的数据交换格式,可以通过它来表示各种各样复杂的数据,如对象,数组,集合,以及集合的集合等数据。
以下不讲概念问题,只介绍代码如何实现。
前端(js):
json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键,下面将介绍两者之间的相互转换。
json字符串:var str1 = '{ "name": "zyy", "sex": "man" }';//最外面包含了一对单引号 json对象: var str2 = { "name": "zyy", "sex": "man" }; //严格的json组成格式
1.json字符串-->json对象(四种方式)
1.使用原生的js函数进行解析
var obj = eval('(' + str1 + ')');
2.使用jquery插件提供的工具进行解析
var obj = $.parseJSON( str1 );
3.使用js原生的JSON对象进行解析(此种方式会出现低版本浏览器<=IE8不兼容问题,不推荐,具体参见)
var obj = JSON.parse(str1);
4.使用JSON官网上提供的json2.js类库对象进行解析 (官网地址 下载json2.js地址),ps:记得引入该文件哦,嘿嘿
var obj = JSON.parse(str1);
注意:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
2.json对象 --> json字符串
1.使用JSON官网上提供的json2.js类库对象进行解析
var str = JSON.stringify(str2);
2.使用js原生的方法(兼容性和上面的3一样)
var str = str2.toJSONString();
---------------------------------------------------分割线--------------------------------------------------------------------
后端(java)
java提供的处理json的类库比较多,类库都是提供了一些对java对象(内含集合、对象、数组等复杂数据类型)或者数组的序列化和反序列换的功能。常用的一些类库如下:
1.org.json 源码下载 官网地址(含API)
2.fastjson(国产)
3.json-lib
4.jackson
5.Gson
注:序列化(对象-->json字符串) 反序列化(json字符串-->对象)
由于大多数类库的功能都差不多,所以只介绍fastjson这一种
以下是几个基本的bean类型
student类:
public class Student { private int studentId; private String username; private int age; private String sex; //省略setter /getter方法 }
Class类
public class Class { private int classId; private Set<Student> students; //上面的Student类集合 //省略setter和getter方法 }
School类
public class School { private int schoolId; private Set<Class> classes; //上面的class对象集合 //省略setter和getter方法 }
测试代码
public class FastjsonTest { public static void main(String[] args) { //构造学生对象 Student stu1 = new Student(); stu1.setStudentId(1); stu1.setUsername("张三"); Student stu2 = new Student(); stu2.setStudentId(2); stu2.setUsername("李四"); //构造class对象 Class class1 = new Class(); Set<Student> sets = new HashSet<Student>(); sets.add(stu2); sets.add(stu1); class1.setClassId(7); class1.setStudents(sets); //构造学校 School school = new School(); Set<Class> sets1 = new HashSet<Class>(); sets1.add(class1); school.setSchoolId(2014); school.setClasses(sets1); String jsonString = JSONObject.toJSONString(school); //序列化 System.out.println(jsonString); System.out.println("-----------------------------"); School school2 = JSONObject.parseObject(jsonString, School.class); //反序列化 Iterator<Class> set = school2.getClasses().iterator(); while(set.hasNext()){ Class class2 = set.next(); System.out.println("classId=" + class2.getClassId() + " "); Iterator<Student> sIterator = class2.getStudents().iterator(); while(sIterator.hasNext()){ Student student = sIterator.next(); System.out.println( " \t" + "studentId="+ student.getStudentId() + ",username=" + student.getUsername()); } System.out.println(); } } }
最后:以上只是简单的一些功能,当然类库中还有很多其他的一些功能,想要深入,自行去查阅吧,哈哈! 喝杯茶去!
相关推荐
基于java开发的前后端分离的社会评估风险系统源码(前端Vue后端java)+数据库+项目使用说明.zip 【项目介绍】 技术工具 前端:Vue 后端:Java jdk8 + SpringCloud Alibaba (Nacos 、Gateway、Sentinel) + MySQL + ...
java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码
使用jdbc查询结果,使用递归生成前端所需要的树形json数据,用SpringMVC传送数据到前端,前端接收,引入相关js文件,在画面上接收后端传输的数据,使用js动态渲染到画面中。有疑问随时私信我即可。
事情: 从java后台返回List类型数据,用于界面显示。但js中想获取它并操作它。直接使用EL表达式,js把它识别成字符串了。不是我想要的啊。。网上搜了搜大家的解决方案…最好的当然是把List集合转成json格式传到界面...
ajax dojo 1.9 java 1.5,1.6,1.7 javascript json lib 2.4 网页制作完全手册
后端(Python Flask)接收短信数据,进行垃圾短信筛选,返回Json数据给前端: 后端使用scikit-learn模块(数据挖掘和数据分析工具),通过其朴素贝叶斯算法API对短信数据进行垃圾短信的识别: 导入中文垃圾短信数据...
非常优秀的java及javaweb教程,how2j全站教程,包括java基础、java初级、java高级、java应用、前端技术,包括html、css、JavaScript、HTML DOM、json、ajax、jquery、bootstrap、vue.js、node.js、webpack、chartjs...
绿色版JSON格式化工具,解压后直接可以使用,打开JsonView.exe的执行文件即可。对于前端和后端开发人员来说是一款不错的工具!
后端使用服务器端编程语言(如Java、Python、Node.js等)和数据库来处理数据,并提供API接口供前端调用。 具体而言,前后端分离后台管理项目的主要特点包括以下几个方面: 前端技术栈:使用HTML、CSS和JavaScript...
全栈实现学生信息管理系统,...后端:java、jdbc、servlet、org.json 数据库:mysql、Navicat for MySQL IDE:IntelliJ IDEA、Visual Studio Code 服务器:Tomcat GitHub:https://github.com/ChongqingWangYu/StudentMS
本项目是一个基于SSM(Spring、SpringMVC、MyBatis)框架的企业级Java小项目,前端整合了Vue.js及其他现代前端技术。项目主要采用Java语言编写,同时辅以JavaScript、Vue、HTML和CSS等,以实现丰富的用户交互体验。 ...
在前端和后端进行数据传输的时候这种格式也是很受欢迎的,后端返回json格式的字符串,前台使用js中的JSON.parse()方法把JSON字符串解析为json对象,然后进行遍历,供前端使用。 下面进入正题,介绍在JAVA中JSON和...
这些文件详细展示了如何使用JavaScript、微信小程序和CSS构建一个在线考试小程序的前端,非常适合用于学习和参考Java项目的开发,并且该项目的全部前端代码已经开源,后端代码预计一个月后也会开源。
本项目基于Springboot2.1.8开发,前端页面由bootstrap3+jQuery编写,全部采用前后端分离的模式,前端发送ajax请求,后端返回json格式的数据。 如何部署 1. 最低java环境 jdk8 mysql5.7 2. 运行数据库脚本,创建...
前端采用JavaScript技术,通过Vue的Nuxtjs框架和React框架,实现了用户交互界面以及中后台管理界面。通过AJAX技术以接口的模式实现对数据的CURD等操作。 数据库上采用MySQL实现博客社区系统的的主体数据支撑,同时...
ajax发送请求到controller,controller响应一个json格式的数据给页面, JSON.parse()再解析json字符串,用$.each遍历。 @RequestMapping(/list) public @ResponseBody java.util.List<UserVO> List() throws ...
我日常学习和工作所使用的语言是Java,JavaScript,获取知识的主要途径是书本,相关经典书基本上都读过,不过记性不好,忘得快,要将知识活学活用,还得不断实践,所以我通过创建一些代码库来巩固知识体系。...
另外,前端和后端可以互换 为什么 为了比较堆栈,分析解决方案,也许可以让您瞥见每种方法可以做什么。 也因为它很有趣。 到目前为止我们有什么 工作API 啤酒上市 啤酒细节 服务实施 技术/功能 REST API CORS ...
项目概述:本移动端康养App后端采用Java语言开发,基于Vue前端技术与SSM(Spring、SpringMVC、MyBatis)后端框架构建。项目共包含323个文件,其中主要包括88个图片资源文件(png、jpg),84个class文件,42个Java...