目录
>
json.stringify()中是JavaScript中的一种方法,将javascript对象转换为json字符串。这是一个简单的例子:
>如何在JavaScript中的JSON字符串?

让myjson ='{“ name”:“ john”,“ age”:30,“ city”:“ new York”}';
let obj = json.parse(myjson);
console.log(obj); obj> consoper; JSON.PARSE()。

>如果我尝试在JavaScript中序列化函数?

>如果您尝试使用JSON.STRINGIFY()在JavaScript中序列化函数,该函数将被忽略并且不会出现在结果的JSON字符串中。这是因为JSON是一种数据格式,并且不支持JavaScript的执行能力。

非常打印是一种以更可读的方式格式化所得JSON字符串的方法。这是通过将数字作为JSON.STRINGIFY()的第三个参数来完成的,该数字代表要用于凹痕的空间数量。
中进行序列化日期,但是需要一些额外的步骤。默认情况下,当您在JavaScript中序列化日期对象时,它将以ISO格式转换为字符串。当您对其进行估算化时,它不会自动转换回日期对象。您需要使用新的date()构造函数。当对象具有tojson()方法时,json.stringify()调用它并序列化其返回的值,而不是原始对象。
首页 web前端 js教程 JavaScript中的跨浏览器JSON序列化

JavaScript中的跨浏览器JSON序列化

Mar 09, 2025 am 12:53 AM

JavaScript中的跨浏览器JSON序列化

JavaScript中的跨浏览器JSON序列化 在本文中,我们将研究对象序列化,当前浏览器实现的好处,并开发一些可以帮助您基于AJAX的项目的代码。 假设我们使用文字符号定义了一个相当复杂的JavaScript对象:
var obj1 = {
	b1: true,
	s1: "text string",
	n1: 12345,
	n2: null,
	n3: undefined,
	a1: [ 1,1,2,3,5,8, [13, 21, 34] ],
	o1: {
		a: [3, 2, 1],
		b: {
			c: 42,
			d: [ 3.14, 1.618 ]
		}
	}
};
登录后复制
登录后复制
我们可以以多种方式访问​​任何对象属性:
obj1.s1;				// returns "text string"
obj1["n1"];				// returns 12345
obj1.a1[6][1];			// returns 21
obj1["o1"]["b"]["c"];	// returns 42
登录后复制
该对象也可以传递给JavaScript函数和方法,而不是指定单个参数。有用的东西。 但是,如果我们需要将此对象存储在cookie中怎么办?如果我们需要通过AJAX请求将对象传递到Web服务怎么办?如果该Web服务要返回对象的修改版本怎么办?答案是序列化:
  • 序列化是将任何对象变成字符串的过程。>
  • > de-Serialization将字符串转回本机对象。
  • 也许我们可以在JavaScript中使用的最佳字符串表示法是JSON - JavaScript对象表示法。 JSON是一种受JavaScript对象文字符号启发的轻量级数据交换格式,如上所示。 JSON得到PHP和许多其他服务器端语言的支持(请参阅JSON.org)。 JavaScript中有两种JSON方法:
> json.stringify(
    obj
  1. ) - 将JavaScript对象转换为JSON String > json.parse(
  2. str
  3. ) - 将json字符串转换回JavaScript对象 不幸的是,很少有浏览器提供这些方法。迄今为止,仅Firefox 3.5,Internet Explorer 8.0和Chrome 3 Beta提供本地支持。一些JavaScript库提供了自己的JSON工具(例如YUI )但是许多人没有(包括jQuery)。 但是,一切都没有丢失 - JavaScript是灵活的,只要浏览器需要它们,我们就可以实现JSON Stringify和解析方法。 在代码的顶部,我们将创建一个JSON变量,该变量指向本机JSON对象或一个空对象,如果它不可用:
  4. JSON.STRINGIFY代码更为复杂:
如果JSON.STRINGIFY不可用,我们将定义一个接受单个OBJ参数的新功能。该参数可以是单个值,数组或复杂对象,例如上面的OBJ1。 该代码检查对象类型。立即返回单个值,并且仅修改字符串以在值周围列出引号。 如果传递数组或对象,则代码将通过每个属性迭代:
var JSON = JSON || {};
登录后复制
// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {

	var t = typeof (obj);
	if (t != "object" || obj === null) {

		// simple data type
		if (t == "string") obj = '"'+obj+'"';
		return String(obj);

	}
	else {

		// recurse array or object
		var n, v, json = [], arr = (obj && obj.constructor == Array);

		for (n in obj) {
			v = obj[n]; t = typeof(v);

			if (t == "string") v = '"'+v+'"';
			else if (t == "object" && v !== null) v = JSON.stringify(v);

			json.push((arr ? "" : '"' + n + '":') + String(v));
		}

		return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
	}
};
登录后复制
字符串值添加了引号。
    >
  1. 儿童数组或对象被递归传递到JSON.STRINGIFY函数。
  2. 将结果值添加到JSON []数组的末尾,作为“名称:值”字符串,或者仅是数组项的单个值。>
  3. >最后,JSON数组转换为逗号删除列表,并在数组[]或Object {}中返回必要时支架。
如果您的大脑感到疼痛,您会很高兴知道JSON.PARSE代码要简单得多:
var obj1 = {
	b1: true,
	s1: "text string",
	n1: 12345,
	n2: null,
	n3: undefined,
	a1: [ 1,1,2,3,5,8, [13, 21, 34] ],
	o1: {
		a: [3, 2, 1],
		b: {
			c: 42,
			d: [ 3.14, 1.618 ]
		}
	}
};
登录后复制
登录后复制
这将JSON字符串转换为对象()。 在您急于在所有项目中实施JSON序列化功能之前,有一些陷阱:
  • 此代码已故意保持短缺。它在大多数情况下都会起作用,但是与本机JSON.Stringify和JSON.PARSE方法。
  • 并非支持每个JavaScript对象。例如,date()将返回一个空对象,而本机JSON方法将其编码为日期/时间字符串。
  • 代码将序列化函数,例如var obj1 = {myfunc:function(x){}};而本机JSON方法不会。
  • >
  • 非常大的对象会丢弃递归错误。
  • 在JSON.PARSE中使用est()的使用本质上是风险的。如果您调用自己的Web服务,那将不是问题,但是对第三方应用程序的电话可能会意外或故意破坏您的页面并引起安全问题。如有必要,可从json.org获得更安全(但较慢)的JavaScript解析器。
  • 希望您发现代码有用。随时在自己的项目中使用它。 资源文件:
  • json序列化演示页
    完整的JavaScript代码(JSON-Serialization.js)
  • >在zip文件中下载完整代码
  • 相关阅读:
  • 如何开发jQuery插件
    >如何构建自动扩展textarea jQuery插件
  • 即将推出:JSON Serialization的有用应用…
经常询问有关JavaScript JSON Serialization 的问题 > javaScript中的JSON序列化是什么?这是使用JSON.STRINGIFY()方法完成的。可以将结果的JSON字符串存储或发送到服务器。这是Web开发中的一个关键过程,因为它允许在客户端和服务器之间轻松传输数据。

>

如何在JavaScript?






json.stringify()中是JavaScript中的一种方法,将javascript对象转换为json字符串。这是一个简单的例子:


console.log(myjson); myjson);
在此示例中,在此示例中,使用Javascript对象“ json” json in json in json in json in json in json in json ins in jons ins in json ins string ins in jons ins in json ins string ins string ins string string string( 'myjson'。

>我可以在javascript中序列化数组吗?此方法不仅可以与简单的数组,还可以与对象数组一起使用。这是一个示例:

让arr = [1,2,3,4]; console.log(myjson);在此示例中,阵列'arr''array'array'转换为json string。

>如何在JavaScript中的JSON字符串?

让myjson ='{“ name”:“ john”,“ age”:30,“ city”:“ new York”}';
let obj = json.parse(myjson);
console.log(obj); obj> consoper; JSON.PARSE()。

>如果我尝试在JavaScript中序列化函数?

>如果您尝试使用JSON.STRINGIFY()在JavaScript中序列化函数,该函数将被忽略并且不会出现在结果的JSON字符串中。这是因为JSON是一种数据格式,并且不支持JavaScript的执行能力。

我可以在JavaScript中自定义序列化过程?这使您可以在序列化过程中过滤或修改它们。

> JavaScript JSON序列化中有什么非常打印的?

非常打印是一种以更可读的方式格式化所得JSON字符串的方法。这是通过将数字作为JSON.STRINGIFY()的第三个参数来完成的,该数字代表要用于凹痕的空间数量。

我可以在javascript中序列化并在javascript?

​​

中进行序列化日期,但是需要一些额外的步骤。默认情况下,当您在JavaScript中序列化日期对象时,它将以ISO格式转换为字符串。当您对其进行估算化时,它不会自动转换回日期对象。您需要使用新的date()构造函数。当对象具有tojson()方法时,json.stringify()调用它并序列化其返回的值,而不是原始对象。

我可以在JSON序列化时处理大型数字吗? JavaScript可以准确地表示最多2^53 - 1的数字。如果您需要序列化数字,则可能需要先将其转换为字符串,以避免精确损失。

>

以上是JavaScript中的跨浏览器JSON序列化的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1659
14
CakePHP 教程
1416
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
神秘的JavaScript:它的作用以及为什么重要 神秘的JavaScript:它的作用以及为什么重要 Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

JavaScript的演变:当前的趋势和未来前景 JavaScript的演变:当前的趋势和未来前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

JavaScript引擎:比较实施 JavaScript引擎:比较实施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript:探索网络语言的多功能性 JavaScript:探索网络语言的多功能性 Apr 11, 2025 am 12:01 AM

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

如何使用Next.js(前端集成)构建多租户SaaS应用程序 如何使用Next.js(前端集成)构建多租户SaaS应用程序 Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

从C/C到JavaScript:所有工作方式 从C/C到JavaScript:所有工作方式 Apr 14, 2025 am 12:05 AM

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

使用Next.js(后端集成)构建多租户SaaS应用程序 使用Next.js(后端集成)构建多租户SaaS应用程序 Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

See all articles