
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方法:
- obj
- ) - 将JavaScript对象转换为JSON String > json.parse( str
- ) - 将json字符串转换回JavaScript对象 不幸的是,很少有浏览器提供这些方法。迄今为止,仅Firefox 3.5,Internet Explorer 8.0和Chrome 3 Beta提供本地支持。一些JavaScript库提供了自己的JSON工具(例如YUI )但是许多人没有(包括jQuery)。 但是,一切都没有丢失 - JavaScript是灵活的,只要浏览器需要它们,我们就可以实现JSON Stringify和解析方法。 在代码的顶部,我们将创建一个JSON变量,该变量指向本机JSON对象或一个空对象,如果它不可用: JSON.STRINGIFY代码更为复杂:
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 ? "]" : "}"); } };字符串值添加了引号。
- >
- 儿童数组或对象被递归传递到JSON.STRINGIFY函数。 将结果值添加到JSON []数组的末尾,作为“名称:值”字符串,或者仅是数组项的单个值。
- >最后,JSON数组转换为逗号删除列表,并在数组[]或Object {}中返回必要时支架。
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.stringify()中是JavaScript中的一种方法,将javascript对象转换为json字符串。这是一个简单的例子:
在此示例中,在此示例中,使用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中序列化数组吗?此方法不仅可以与简单的数组,还可以与对象数组一起使用。这是一个示例:
>如何在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的数字。如果您需要序列化数字,则可能需要先将其转换为字符串,以避免精确损失。>
让myjson ='{“ name”:“ john”,“ age”:30,“ city”:“ new York”}';
let obj = json.parse(myjson);
console.log(obj); obj> consoper; JSON.PARSE()。
>如果我尝试在JavaScript中序列化函数?
非常打印是一种以更可读的方式格式化所得JSON字符串的方法。这是通过将数字作为JSON.STRINGIFY()的第三个参数来完成的,该数字代表要用于凹痕的空间数量。
我可以在javascript中序列化并在javascript?
中进行序列化日期,但是需要一些额外的步骤。默认情况下,当您在JavaScript中序列化日期对象时,它将以ISO格式转换为字符串。当您对其进行估算化时,它不会自动转换回日期对象。您需要使用新的date()构造函数。当对象具有tojson()方法时,json.stringify()调用它并序列化其返回的值,而不是原始对象。
我可以在JSON序列化时处理大型数字吗? JavaScript可以准确地表示最多2^53 - 1的数字。如果您需要序列化数字,则可能需要先将其转换为字符串,以避免精确损失。>
以上是JavaScript中的跨浏览器JSON序列化的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

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

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1
功能强大的PHP集成开发环境

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。