当前位置: 首页 > 面试题库 >

带有Prototype.js的JSON.stringify()数组异常

宋华美
2023-03-14
问题内容

我试图找出json序列化出了什么问题,将我的应用程序的当前版本与旧版本一起使用,并发现JSON.stringify()的工作方式中存在一些令人惊讶的差异(使用json.org中的JSON库)
)。

在我的应用的旧版本中:

 JSON.stringify({"a":[1,2]})

给我这个

"{\"a\":[1,2]}"

在新版本中,

 JSON.stringify({"a":[1,2]})

给我这个

"{\"a\":\"[1, 2]\"}"

任何想法都可能会发生什么变化,以使同一库在新版本中在数组括号内加上引号?


问题答案:

由于JSON.stringify最近已经随某些浏览器一起提供,所以我建议使用它而不是Prototype的toJSON。然后,您将检查window.JSON
&&
window.JSON.stringify,否则仅包含json.org库(通过document.createElement('script')…)。要解决不兼容问题,请使用:

if(window.Prototype) {
    delete Object.prototype.toJSON;
    delete Array.prototype.toJSON;
    delete Hash.prototype.toJSON;
    delete String.prototype.toJSON;
}


 类似资料:
  • 问题内容: 我使用Vlad Mihalcea的库来将SQL数组(在我的情况下为Postgresql)映射到JPA。然后,假设我有一个实体,例如。 适当的SQL是: 使用QueryDSL,我想获取包含所有给定标签的行。原始SQL可能是: (摘自:https : //www.postgresql.org/docs/9.1/static/functions- array.html ) 可以用QueryD

  • 问题内容: 我有一个具有某些属性和方法的对象,如下所示: 我必须将此对象传递给另一个函数。因此,我尝试使用JSON.stringify(obj),但是加载函数(当然不是空的,这只是出于本示例的目的)正在“丢失”。 有什么方法可以反对和维护它所拥有的方法吗? 谢谢! 问题答案: 为什么要精确化对象?JSON不了解功能(并且不应该)。如果要传递对象,为什么不采用以下方法之一?

  • 问题内容: 我有一个简单的网址数组,我想用jQuery加载每个网址。我正在使用,但是似乎无法使用它,所以我切换到了-我几乎可以使用它了,但是我得到的结果很奇怪。我希望有人可以帮助我改善这项工作。 这应该输出.. 步骤1.0 步骤1.1 步骤1.2 第2步 然后数组包含所有3个Ajax请求的结果。这可能吗? 问题答案: 首先,您必须决定是要并行处理三个ajax调用(同时运行所有ajax调用,而总运行

  • 问题内容: 我必须在这里丢失一些内容,但是以下代码返回一个空字符串: 用JSON对这个数组进行编码的正确方法是什么? 问题答案: JavaScript数组旨在保存带有 数字 索引的数据。您可以向它们添加命名属性,因为数组是一种对象类型(当您要存储有关包含常规,有序,数字索引数据的数组的元数据时,这很有用),但这并不是它们的设计目标对于。 JSON数组数据类型 不能 在数组上具有命名键。 当您将Ja

  • 那么,我在正确的道路上吗?如果是,我做错了什么。如果我没有走对路,我该怎么办?

  • 问题内容: 我正在尝试使用jQuery的循环来遍历此JSON并将其添加到named中。JSON如下: 我通过使用以下代码获取此JSON: 有什么办法吗? 问题答案: 尝试(未试用): 我想了三个独立的循环,因为您可能希望对每个数据集进行不同的处理(justIn,recent,old)。如果没有,您可以执行以下操作: