`

json处理总结(前端js和后端java)

阅读更多

 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();
	    }
	}
	

}

 

 

 

 

 最后:以上只是简单的一些功能,当然类库中还有很多其他的一些功能,想要深入,自行去查阅吧,哈哈! 喝杯茶去!

 

 

 

 

 

 

 

 

 

 

 

 

1
2
分享到:
评论
1 楼 longhua2003 2015-11-18  

相关推荐

    excel导入导出,包括纯前端解析,后端解析导入导出方式

    总结来说,“Excel导入导出”涉及前端和后端的协同工作,选择合适的解析库,合理分配任务,以及保证数据安全是关键。无论是纯前端解析还是后端解析,都有其适用的场景和优缺点。了解这些技术并灵活运用,可以提升...

    校园信息发布系统 vue前端 后端java 一套完整

    本套系统采用Vue前端技术和Java后端技术进行开发,旨在为师生提供一个高效、便捷的信息发布与获取平台。下面我们将详细探讨这套系统的构成及其关键技术。 首先,Vue.js作为前端框架,是这套系统用户界面的核心。Vue...

    WMS源码 包含VUE前端源码、后端java spring restful api 源码

    《WMS系统源码解析:前端VUE与后端Java Spring RESTful API的结合》 在信息化管理领域,仓库管理系统(Warehouse Management System,简称WMS)扮演着至关重要的角色,它帮助企业实现库存精细化管理,提高运营效率...

    java常见问题前端js和后端

    首先,Java和JavaScript虽然名字相似,但它们是两种不同的编程语言。Java是一种强类型、面向对象的语言,广泛用于服务器端开发,提供高性能和稳定的服务。而JavaScript,虽然最初设计用于客户端网页的动态效果,现在...

    JAVA实现JSON后端向前端传递数据

    在Java开发中,后端与前端的数据交互通常涉及到JSON(JavaScript Object Notation)格式,因为JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文将详细介绍如何在Java后端通过JSON...

    2023全新借贷APP系统源码 独立uni前端 java后端 全开源

    随着技术的不断进步,2023年的全新借贷APP系统源码应运而生,以其独立的Uni前端和Java后端架构,为借贷服务提供了更为高效、安全的解决方案。本文将深入探讨这一系统的核心技术特点和优势。 首先,让我们关注这套...

    前端将浏览器端麦克风语音流传输给java后端

    首先,我们需要理解浏览器的Web Audio API,这是一个强大的工具,允许前端开发者处理音频输入和输出。在获取麦克风语音流时,我们主要用到`navigator.mediaDevices.getUserMedia()`方法。这个API允许用户授权访问...

    前端jquery+后端servlet实现三级联动项目省市区

    这个项目“前端jquery+后端servlet实现三级联动项目省市区”就是一个典型的案例,它展示了如何利用jQuery在前端处理用户交互,以及如何通过Servlet在后端进行数据处理和传输。下面我们将详细探讨这个项目中的关键...

    2023全新借贷APP系统源码 独立uni前端 java后端 全开源.zip

    系统的核心架构分为两部分:前端和后端,每部分都采用先进的技术和设计原则来确保系统的稳定性和用户体验。 前端部分采用uni-app框架进行开发。uni-app是一个多平台的开发框架,支持iOS、Android、H5等多个平台,让...

    本科毕业设计高校宿舍管理系统源码+数据库,前后端分离,前端node.js,后端JAVA

    《高校宿舍管理系统:基于Node.js前端与JAVA后端的实现》 在当今信息化时代,高校宿舍管理系统的构建显得尤为重要,它能有效提升学校后勤服务效率,优化学生住宿体验。本项目是一个本科毕业设计,旨在利用现代Web...

    基于java开发的前后端分离的社会评估风险系统源码(前端Vue后端java)+数据库+项目使用说明.zip

    基于java开发的前后端分离的社会评估风险系统源码(前端Vue后端java)+数据库+项目使用说明.zip 【项目介绍】 技术工具 前端:Vue 后端:Java jdk8 + SpringCloud Alibaba (Nacos 、Gateway、Sentinel) + MySQL + ...

    Chrom进行显示JSON数据

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Chrome作为一款流行的浏览器,提供了多种方法来查看和处理JSON数据。对于Java后端开发者而言,理解并掌握如何在Chrome中...

    Java下的Json支持包和前端json的js库

    Java和JavaScript作为后端和前端开发的重要语言,对JSON的支持是至关重要的。本文将详细讲解Java下的JSON支持包以及前端JSON所需的JS库。 首先,让我们关注Java环境中的JSON处理。Java提供了多种库来处理JSON,其中...

    JSON资源包,有JS和JAVA包

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式,同时也易于人阅读和编写,同时...无论你是前端开发者还是后端开发者,都可以从中获取到处理JSON数据所需的功能。

    【Java毕业设计】毕业设计选题系统——选题系统,前端vue+element,后端java,数据库mysql.zip

    1. **Vue.js**:Vue.js 是一个轻量级的前端JavaScript框架,以声明式编程为特点,易于上手且性能优秀。在本项目中,Vue.js 负责视图层的构建,通过模板语法、响应式数据绑定和组件化来实现页面的动态渲染和交互。 2...

    json数据base64编码压缩+解压解码(java以及js)

    java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码

    微信小程序用户前端+SpringBoot后端+Vue移动端

    Vue.js是一个轻量级的前端JavaScript框架,以其易学易用、高性能和灵活性著称。Vue的核心库专注于视图层,易于集成到现有项目中,同时也支持构建复杂的单页应用(SPA)。在移动端,Vue可以借助Vuetify、Quasar等UI...

    JSON应用 java&js

    总结,JSON在Java和JavaScript中的应用非常广泛,它们共同构建了现代Web应用中的数据交换桥梁。无论是在服务器端处理数据,还是在客户端展示和交互,JSON都扮演着至关重要的角色。了解和熟练掌握JSON的使用,对于...

    websocket实现(含java后端)_微信小程序模板js代码前台前端H5页面源码.rar

    本资源包含了一个基于WebSocket技术的完整实现,包括Java后端和微信小程序、H5页面的前端部分。让我们深入探讨一下WebSocket的原理、实现方式以及在微信小程序中的应用。 WebSocket协议在HTTP的基础上进行了扩展,...

    一个基于vue做前端,后端用java提供API的前后端分离的SPA后台管理功能.zip

    在现代Web开发中,前后端分离的架构设计已经成为主流,其中单页面应用程序(Single-Page Application,SPA)尤其受到青睐。...开发者可以通过学习和理解这个项目,提升在前端框架Vue.js和后端Java服务开发方面的技能。

Global site tag (gtag.js) - Google Analytics