JavaScript中的跨浏览器JSON序列化

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
- 序列化是将任何对象变成字符串的过程。
> > 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.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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

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

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

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

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...
