【问题标题】:JavaScript - convert object to string ( stopped working ) [duplicate]JavaScript - 将对象转换为字符串(停止工作)[重复]
【发布时间】:2024-01-10 16:20:01
【问题描述】:

我有需要转换成字符串的 javascript 对象。

var obj = {"name": "XXX", "age": "27"};

谷歌搜索后我得到了JSON.stringify(obj);

JSON.stringify(obj); 工作正常,如果 IE8 模式如下所示

浏览器模式:IE8
文档模式:IE8 标准

如果相同的代码不起作用

浏览器模式:IE8
文档模式:怪癖模式

我想知道为什么同样的事情不起作用......

任何想法都会受到赞赏。

【问题讨论】:

  • 很多东西在旧版本的 Internet Explorer 中不起作用。这是其中之一。不要制作怪癖模式页面。
  • @Pointy 但是为什么这在怪癖模式下不起作用...我想了解的这件事...
  • 这是因为 IE8 又旧又破,而微软就是这样做的。如果你想知道原因,你可以问他们。当 IE 进入 quirks 模式时,它开始使用旧代码,它只是不支持 JSON 对象。 无论如何,您都不应该创建新的怪癖模式页面。
  • @Pointy 实际上我现有的应用程序默认以怪癖模式打开...我正在尝试使用 javascript 获取数据..
  • 然后在您的应用程序中放置一个正确的<DOCTYPE>

标签: javascript json internet-explorer-8 ie8-browser-mode


【解决方案1】:

如果您可以将 IE 模式固定为 IE8 和 IE8 标准,我建议您使用 JSON.stringifyJSON.stringify 将序列化一个对象并且非常易于使用。大多数现代浏览器本机支持此方法,但对于那些不支持的浏览器,您可以包含 JS version

如果您无法修复 IE 模式,请使用以下方法将对象转换为字符串。

功能:

function objToString (obj) {
var tabjson=[];
for (var p in obj) {
    if (obj.hasOwnProperty(p)) {
        tabjson.push('"'+p +'"'+ ':' + '"' +obj[p] + '"');
    }
}  tabjson.push()
return '{'+tabjson.join(',')+'}';
}

调用函数:

var obj = {"name": "XXX", "age": "27"};
objToString(obj );

输出:

"{"name":"XXX","age":"27"}"

【讨论】:

    最近更新 更多