浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)_jquery
首先,准备新建一个js文件。以下是JSON2.js的内容,把内容拷到js文件中,以便调用:
/*
http://www.JSON.org/json2.js
公共领域。
没有明示或暗示的保证。使用风险自负。
请参阅 http://www.JSON.org/js.html
在部署之前应缩小此代码。
请参阅 http://javascript.crockford.com/jsmin。 html
使用您自己的副本。从您无法控制的服务器加载代码是极其不明智的。
此文件创建一个全局 JSON 对象,其中包含两个方法:stringify
和 parse。
JSON.stringify(value, replacementr, space )
value 任何 JavaScript 值,通常是对象或数组。
替换符 一个可选参数,用于确定对象
对象值的字符串化方式。它可以是
函数或字符串数组。
空格 一个可选参数,指定嵌套结构的缩进
。如果省略,文本将
被打包,没有额外的空格。如果它是一个数字,
它将指定每个
级别缩进的空格数。如果它是字符串(例如 't' 或 ' '),
它包含用于在每个级别缩进的字符。
此方法从 JavaScript 值生成 JSON 文本。
当对象找到 value 后,如果对象包含 toJSON
方法,则会调用其 toJSON 方法,并将结果
字符串化。 toJSON 方法不会序列化:它返回由应序列化的名称/值对表示的
值,
如果不应该序列化任何内容,则返回未定义的值。 toJSON 方法
将传递与值关联的键,这将
绑定到值
例如,这会将日期序列化为 ISO 字符串。
Date.prototype.toJSON = function (key) {
function f(n) {
// 将整数格式化为至少有两位数。
return n }
return this.getUTCFullYear() '-'
f(this.getUTCMonth() 1) '-'
f(this.get UTCDate()) 'T'
f(this.getUTCHours( )) ':'
f(this.getUTCMinutes()) ':'
f(this.getUTCSeconds()) 'Z';
};
您可以提供可选的替换方法。它将传递每个成员的
键和值,并将其绑定到包含的
对象。从您的方法返回的值将被序列化
。如果您的方法返回未定义,则该成员将
被排除在序列化之外。
如果replacer 参数是字符串数组,则它将
用于选择要序列化的成员。它会过滤结果
,以便只有具有替换数组中列出的键的成员
字符串化。
没有 JSON 表示形式的值,例如未定义或
函数,将不会被序列化。对象中的此类值将被删除
;在数组中,它们将被替换为 null。您可以使用
替换函数将其替换为 JSON 值。
JSON.stringify(undefined) 返回未定义。
可选的 space 参数生成
值的字符串化,并用换行符填充和缩进,使其
更易于阅读。
如果空格参数是非空字符串,则该字符串将
用于缩进。如果 space 参数是数字,则
缩进将是那么多空格。
示例:
text = JSON.stringify(['e', {pluribus: 'unum'}]);
// 文本为 '["e",{"pluribus":"unum"}]'
text = JSON.stringify(['e', {pluribus: 'unum'}], null, 't ');
// 文本为 '[nt"e",nt{ntt"pluribus": "unum"nt}n]'
text = JSON.stringify([new Date()], function ( key, value) {
返回 this[key] instanceof Date ?
'Date(' this[key] ')' : value;
});
// text is '["Date(---current time---)"]'
JSON.parse(text, reviver)
此方法解析 JSON 文本以生成对象或数组。
它可以抛出 SyntaxError 异常。
可选的 reviver 参数是一个可以过滤和
转换结果的函数。它接收每个键和值,
并使用其返回值代替原始值。
如果它返回收到的内容,则结构不会被修改。
如果它返回未定义,则成员已删除。
示例:
// 解析文本。看起来像 ISO 日期字符串的值将
// 转换为 Date 对象。
myData = JSON.parse(text, function (key, value) {
var a;
if (typeof value === '字符串') {
a =
/^(d{4})-(d{2})-(d{2})T(d{2}):(d{2 }):(d{2}(?:.d*)?)Z$/.exec(value);
if (a) {
return new Date(Date.UTC( a[1], a[2] - 1, a[3], a[4],
a[5], a[6]));
}
}
返回值;
} );
myData = JSON.parse('["日期(09/09/2001)"]', function (key, value) {
var d;
if (typeof value === ' string' &&
value.slice(0, 5) === '日期(' &&
value.slice(-1) === ')') {
d = 新日期(值。 slice(5, -1));
if (d) {
return d;
}
}
返回值;
});
这是一个参考实现。您可以自由复制、修改或
重新分发。
*/
/*jslint 邪恶: true, strict: false, regexp: false */
/*members "", "b" , "t", "n", "f", "r", """, JSON, "\", apply,
调用, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
getUTCMinutes, getUTCMonth, getUTCSeconds , hasOwnProperty, join,
lastIndex, length, parse, prototype, Push, Replace, slice, stringify,
test, toJSON, toString, valueOf
*/
// 仅创建 JSON 对象我们在闭包中创建
//方法以避免创建全局变量。
if (!this.JSON2)
{
this.JSON2 = {};
}
(function () {
"use strict";
function f(n) {
// 将整数格式化为至少有两位数。
return n }
if (typeof Date.prototype.toJSON !== 'function') {
Date.prototype.toJSON = function (key) {
return isFinite( this.valueOf()) ?
this.getUTCFullYear() '-'
f(this.getUTCMonth() 1) '-'
f(this.getUTCDate()) “T”
f(this.getUTCHours()) ':'
f(this.getUTCMinutes()) ':'
f(this.getUTCSeconds()) 'Z' : null;
};
String.prototype.toJSON =
Number.prototype.toJSON =
Boolean.prototype.toJSON = function (key) {
return this.valueOf();
};
}
var cx = /[u0000u00adu0600-u0604u070fu17b4u17b5u200c-u200fu2028-u202fu2060-u206fuffeffufff0-uffff]/g,
可转义 = /[\"x00-x1fx7f-x9 fu00adu0600-u0604u070fu17b4u17b5u200c-u200fu2028-u202fu2060-u206fufeffufff0-uffff]/g,
间隙,
缩进,
meta = { // 字符替换表
'b': '\b',
'\t',
'n ': '\n',
'f': '\f',
'r': '\r',
'"' : '\"',
'\': '\\'
},
代表;
function quote(string) {
escapable.lastIndex = 0;
return escapable.test(string) ?
'"' 字符串.replace(可转义, function (a) {
var c = meta[a];
return typeof c === 'string' ? c :
'\u' ('0000' a.charCodeAt(0).toString(16)).slice(-4);
}) '"' :
'"' 字符串 '" ';
}
function str(key,holder) {
var i, // 循环计数器。
k, // 成员键。
v, // 成员值。
长度,
心灵 = 间隙,
部分,
value =holder[key];
if (value && typeof value === 'object' &&
typeof value.toJSON === '功能') {
value = value.toJSON(key);
}
if (typeof rep === 'function') {
value =rep.call(holder, key, value);
}
switch (typeof value) {
case 'string':
return quote(value);
case 'number':
return isFinite(value) ? String(value) : 'null';
case 'boolean':
case 'null':
return String(value);
case 'object':
if (!value) {
return 'null';
}
间隙 = 缩进;
部分 = [];
if (Object.prototype.toString.apply(value ) === '[对象数组]') {
length = value.length;
for (i = 0; i partial[i] = str(i, value) || 'null';
}
v =partial.length === 0 ? '[]' :
间隙? '[n' 间隙
partial.join(',n' 间隙) 'n'
头脑 ']' :
'['partial.join(',') ']';
间隙=头脑;
return v;
}
if (rep && typeof rep === 'object') {
length = rep.length;
for (i = 0; i k = rep[i];
if (typeof k === 'string') {
v = str(k, value);
if (v) {
partial.push(quote(k ) (间隙 ? ': ' : ':') v);
}
}
}
} else {
for (k 值) {
if (Object. hasOwnProperty.call(value, k)) {
v = str(k, value);
if (v) {
部分。推(引用(k)(间隙?':':': ') v);
}
}
}
}
v = 部分. 长度 === 0 ? '{}' :
间隙? '{n'间隙partial.join(',n'间隙)'n'
头脑'}':'{'partial.join(',')'}';
间隙=头脑;
return v;
}
}
if (typeof JSON2.stringify !== 'function') {
JSON2.stringify = 函数(值、替换符、空格){
var i ;
间隙 = '';
缩进 = '';
if (typeof space === 'number') {
for (i = 0; i 缩进 = ' ';
}
} else if (typeof space === 'string') {
缩进 = 空格;
}
rep = 替换器;
if (替换器 && 替换器类型 !== '函数' &&
(替换器类型 !== '对象' ||
typeof replacement.length !== 'number' )) {
throw new Error('JSON2.stringify');
}
return str('', {'': value});
};
}
if (typeof JSON2.parse !== 'function') {
JSON2.parse = function (text, reviver) {
var j;
function walk(holder, key) {
var k , v, value =holder[key];
if (value && typeof value === 'object') {
for (k in value) {
if (Object.hasOwnProperty.call (值, k)) {
v = walk(value, k);
if (v !== undefined) {
value[k] = v;
} else {
删除值[ k];
}
}
}
}
return reviver.call(holder, key, value);
}
text = String(text);
cx.lastIndex = 0;
if (cx.test(text)) {
text = text.replace(cx, function (a) {
return '\u'
('0000 ' a.charCodeAt(0).toString(16)).slice(-4);
});
}
if (/^[],:{}s]*$/
.test(text.replace(/\(?:["\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
.replace(/"[^"\nr]*"|true|false|null|-?d (?:.d*)?(?:[eE][ -]?d )?/g, ']')
.replace(/(?:^|:|,)(?:s*[) /g, ''))) {
j = eval('(' text ')');
return typeof reviver === 'function' ?
walk({'': j}, '') : j;
}
throw new SyntaxError('JSON2.parse');
};
}
}());
第二、调用页的内容
注意:调用js文件的路径需要自己调整,这点如果不会,那就别再继续看了。
var a = '{ "name": "tom", "sex": "男", "age": "24" }'; // 用于组成json的字符串;
alert("用于组成json的字符串:【" a "】");
var b = JSON2.parse(a); // 把字符串a转换为json格式b
var c = JSON2.stringify(a); //把json格式b转换为字符串c
alert("转换后的字符串:【" c "】");

热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)

热门话题

PHP数组转JSON的性能优化方法包括:使用JSON扩展和json_encode()函数;添加JSON_UNESCAPED_UNICODE选项以避免字符转义;使用缓冲区提高循环编码性能;缓存JSON编码结果;考虑使用第三方JSON编码库。

PHP中int类型转字符串的方法详解在PHP开发中,经常会遇到将int类型转换为字符串类型的需求。这种转换可以通过多种方式实现,本文将详细介绍几种常用的方法,并附带具体的代码示例来帮助读者更好地理解。一、使用PHP内置函数strval()PHP提供了一个内置函数strval(),可以将不同类型的变量转换为字符串类型。当我们需要将int类型转换为字符串类型时,

Go语言是一种强大且灵活的编程语言,它提供了丰富的字符串处理功能,包括字符串截取。在Go语言中,我们可以使用切片(slice)来截取字符串。接下来,将详细介绍如何在Go语言中截取字符串,并附上具体的代码示例。一、使用切片截取字符串在Go语言中,可以使用切片表达式来截取字符串的一部分。切片表达式的语法如下:slice:=str[start:end]其中,s

1、首先打开pycharm,进入到pycharm主页。2、然后新建python脚本,右键--点击new--点击pythonfile。3、输入一段字符串,代码:s="-"。4、接着需要把字符串里面的符号重复20次,代码:s1=s*20。5、输入打印输出代码,代码:print(s1)。6、最后运行脚本,在最底部会看到我们的返回值:-就重复了20次。

Jackson库中的注解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略属性@JsonProperty:指定名称@JsonGetter:使用获取方法@JsonSetter:使用设置方法反序列化:@JsonIgnoreProperties:忽略属性@JsonProperty:指定名称@JsonCreator:使用构造函数@JsonDeserialize:自定义逻辑

Golang中如何检查字符串是否以特定字符开头?在使用Golang编程时,经常会遇到需要检查一个字符串是否以特定字符开头的情况。针对这一需求,我们可以使用Golang中的strings包提供的函数来实现。接下来将详细介绍如何使用Golang检查字符串是否以特定字符开头,并附上具体的代码示例。在Golang中,我们可以使用strings包中的HasPrefix

PHP字符串操作:有效去除空格的实用方法在PHP开发中,经常会遇到需要对字符串进行去除空格操作的情况。去除空格可以使得字符串更加整洁,方便后续的数据处理和显示。本文将介绍几种有效的去除空格的实用方法,并附上具体的代码示例。方法一:使用PHP内置函数trim()PHP内置函数trim()可以去除字符串两端的空格(包括空格、制表符、换行符等),非常方便且简单易用

PHP字符串操作:去除多余逗号,保留唯一逗号实现技巧在PHP开发中,字符串处理是一个非常常见的需求。有时候我们需要对字符串进行处理,去除多余的逗号,保留唯一的逗号。在这篇文章中,我将介绍一种实现技巧,并提供具体的代码示例。首先,我们来看一个常见的需求:假设我们有一个包含多个逗号的字符串,我们需要去除多余的逗号,只保留唯一的逗号。例如,将"apple,ba
