什么是JSON+如何处理JSON字符串
2个回答
展开全部
JSON 就是一种格式
不同类型的变量转换为JSON格式的方式稍有不同。
(1)将数值型、布尔型变量和函数对象转换为JSON格式非常简单,不需要做任何处理,
(2)将字符串型变量转换为JSON格式时,需要先处理其中的某些特殊字符。例如双引号、单引号和回车、换行符,将其替换为反斜杠"转义后
的字符,然后用引号将转换后的内容括起来。代码如下:
return(""""+obj.replace(/(["""'])/g,"""$1").replace(/"r/,"""r").replace(/"n/,"""n").replace(/"t/,"""t")+"""");
(3)将日期时间型变量转换为JSON格式时,需要将其进行特殊处理,代码如下:
return("(new Date("""+obj.toUTCString()+"""))");
(4)将正则表达式转换为JSON格式时,通过此对象的source获取其内容。不仅仅需要处理source中的特殊字符,还需要注意设置其
global,ignoreCase和multiline属性,代码如下:
return("(new RegExp("""+String(obj.source).replace(/("W)/g,"""$1")+""",
"""+(obj.global?"g":"")+(obj.ignoreCase?"i":"")+(obj.multiline?"m":"")+"""))");
(5)将数组对象转换为JSON格式时,递归调用toJSONString函数依次序列化其中的每个元素,然后将获得的各个字符串用逗号连接,在最外
围用方括号[]将其括起来,代码如下:
var re = new Array();
for(var i=0; i<obj.length; i++)re.push(toJSONString(obj[i]));
return("[" + re.join(", ") + "]");
(6)将Object对象转换为JSON格式时,做法与数组对象类似,同样需要通过递归调用来依次处理其中的每个组成元素。此外,需要注意的
是,其组成元素序列化时,需要构成名值对的形式。
不同类型的变量转换为JSON格式的方式稍有不同。
(1)将数值型、布尔型变量和函数对象转换为JSON格式非常简单,不需要做任何处理,
(2)将字符串型变量转换为JSON格式时,需要先处理其中的某些特殊字符。例如双引号、单引号和回车、换行符,将其替换为反斜杠"转义后
的字符,然后用引号将转换后的内容括起来。代码如下:
return(""""+obj.replace(/(["""'])/g,"""$1").replace(/"r/,"""r").replace(/"n/,"""n").replace(/"t/,"""t")+"""");
(3)将日期时间型变量转换为JSON格式时,需要将其进行特殊处理,代码如下:
return("(new Date("""+obj.toUTCString()+"""))");
(4)将正则表达式转换为JSON格式时,通过此对象的source获取其内容。不仅仅需要处理source中的特殊字符,还需要注意设置其
global,ignoreCase和multiline属性,代码如下:
return("(new RegExp("""+String(obj.source).replace(/("W)/g,"""$1")+""",
"""+(obj.global?"g":"")+(obj.ignoreCase?"i":"")+(obj.multiline?"m":"")+"""))");
(5)将数组对象转换为JSON格式时,递归调用toJSONString函数依次序列化其中的每个元素,然后将获得的各个字符串用逗号连接,在最外
围用方括号[]将其括起来,代码如下:
var re = new Array();
for(var i=0; i<obj.length; i++)re.push(toJSONString(obj[i]));
return("[" + re.join(", ") + "]");
(6)将Object对象转换为JSON格式时,做法与数组对象类似,同样需要通过递归调用来依次处理其中的每个组成元素。此外,需要注意的
是,其组成元素序列化时,需要构成名值对的形式。
2020-12-30 · MySQL开源数据库领先者
关注
展开全部
MySQL 从 5.7 开始,增加了新的数据类型:JSON。
JSON 类型的出现,弥补了 MySQL 长期以来相比其他关系型数据库的非标准化特性略势,比如可以用 JSON 来实现类似字典、数组等类型。以及之后大量针对 JSON 类型字串的相关遍历方法与函数。
比如对数组来说,简单的遍历路径为 "$[数组小标]" 或者 "$[*]" 来一次性遍历所有元素。MySQL 8.0 又新增了对于数组元素的范围遍历,比如 "$[m to n]",表示遍历下标为 m 到 n 的元素。
JSON 类型的出现,弥补了 MySQL 长期以来相比其他关系型数据库的非标准化特性略势,比如可以用 JSON 来实现类似字典、数组等类型。以及之后大量针对 JSON 类型字串的相关遍历方法与函数。
比如对数组来说,简单的遍历路径为 "$[数组小标]" 或者 "$[*]" 来一次性遍历所有元素。MySQL 8.0 又新增了对于数组元素的范围遍历,比如 "$[m to n]",表示遍历下标为 m 到 n 的元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询