将字符串和json对象的相互转换,我们通常使用jsON.parse()与JSON.stringify()。但是在IE8以下版本中,在window是没有JSON对象的。那么如何解决IE8以下低版本实现JSON.parse()与JSON.stringify()的兼容呢?下面整理一些实现方式:
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
if (!window.JSON) {
window.JSON = {
parse: function(jsonStr) {
return eval('(' + jsonStr + ')');
},
stringify: function(jsonObj) {
var result = '',
curVal;
if (jsonObj === null) {
return String(jsonObj);
}
switch (typeof jsonObj) {
case 'number':
case 'boolean':
return String(jsonObj);
case 'string':
return '"' + jsonObj + '"';
case 'undefined':
case 'function':
return undefined;
}
switch (Object.prototype.toString.call(jsonObj)) {
case '[object Array]':
result += '[';
for (var i = 0, len = jsonObj.length; i < len; i++) {
curVal = JSON.stringify(jsonObj[i]);
result += (curVal === undefined ? null : curVal) + ",";
}
if (result !== '[') {
result = result.slice(0, -1);
}
result += ']';
return result;
case '[object Date]':
return '"' + (jsonObj.toJSON ? jsonObj.toJSON() : jsonObj.toString()) + '"';
case '[object RegExp]':
return "{}";
case '[object Object]':
result += '{';
for (i in jsonObj) {
if (jsonObj.hasOwnProperty(i)) {
curVal = JSON.stringify(jsonObj[i]);
if (curVal !== undefined) {
result += '"' + i + '":' +curVal + ',';
}
}
}
if (result !== '{') {
result = result.slice(0, -1);
}
result += '}';
return result;
case '[object String]':
return '"' + jsonObj.toString() + '"';
case '[object Number]':
case '[object Boolean]':
return jsonObj.toString();
}
}
};
}
<meta http-equiv="X-UA-Compatible" content="IE=8" />
说明:X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的。作用是将浏览器的兼容模式关闭,用户不可选择ie的显示模式为兼容模式
主要实现功能html转json,再由json恢复html,可去除 style 和 script 标签,将行内样式转换为 js object,将 class 转换为数组形式,主要依赖于 htmlparser2 ; 这是一个性能优越、功能强大的 html 解析库
我所在的小组主要面向内部, 开发内部平台, 大多数页面都存在以下的结构: 筛选框 + 表格; 小组内vue UI框架选型为view-design, view-design的Table组件支持使用JSON自动构建出表格
这篇文章讲解关于XML/HTML/JSON的学习,大家都知道服务器端可以返回的数据格式,主要就是:XML、HTML、JSON,当我们做数据抓取,ajax请求的时候都需要熟悉它们的使用。
value 被序列化为字符串的对象;replacer 根据类型不同,其行为也不一样。如果是一个函数类型,则相当于是一个filter,可以对序列化的键值对进行加工处理;如果是一个数组,则只有符合数组中名称的key才会被输出
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看
[object Object] 表示的就只是一个对象,当前对象 toString() 没有正确解析,可以使用 JSON.stringify() 来避免这个问题。 Json.stringify() 是序列化函数,用于将对象转化为字符串;
JavaScript解析json数据,可以使用JSON.parse()方法来实现解析。JSON.parse()方法可以解析JSON字符串,转换为 JavaScript 对象。
JSON.parse和JSON.stringify是对json数据的转换,在js中使用的频率还是非常高的,比如localStorage,cookie中对复合型数据的存储,与服务器进行数据交互的格式转换等等。
长话短说:如果你想知道JSON——它是什么,如何使用它以及它和BSON哪个更好,那么你来对地方了。在本文中,我们将探讨这些缩写字母代表什么意思,以及这些格式在编程和数据库世界中有什么作用。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!