【问题标题】:JSON.stringify() alternative and JSON2.jsJSON.stringify() 替代和 JSON2.js
【发布时间】:2012-09-13 13:57:21
【问题描述】:

我正在尝试对接受一个字符串参数的函数进行 WCF 调用。当我从 jQuery 传递参数时,我使用 JSON.stringify(parameters),其中参数是一个名称:值集合,其中包含我要传递的参数。

我的疑惑是

  1. 在我的 IE 版本中,没有定义 JSON。因此,我使用了 JSON2.js 库并将其包含在我网站的母版页中。
  2. 我仍然遇到同样的消息。 JSON 在 IE 上未定义。

嗯,它在谷歌浏览器上完美运行。

PS - 这一切都在 .NET 上。

脚本名称是json2.js。我在 jQuery 中传递的值是

data:JSON2.stringify(parameters),
contentType: "application/json2; charset=utf-8",
dataType: "json2"

我正在使用 IE8。 (很抱歉之前没有提供这个细节,只是添加了)

请指教。

【问题讨论】:

  • ¿您使用的是哪个版本的 IE?它会帮助我们帮助你:)。
  • 哪个版本的IE?另外,您有示例页面吗?

标签: jquery json stringify


【解决方案1】:

您应该使用JSON.stringify(parameters) 而不是JSON2.stringify(parameters)。还要确保您已将json2.js 脚本包含到您的站点中。

如果您使用的是 IE8,则根本不需要 json2.js,因为它原生支持 JSON.stringify 方法。

【讨论】:

  • 谢谢达林。我已经很好地添加了 json2.js,就像我为 jQuery 库所做的一样。在某个地方,我有点害怕为什么定义没有链接到 json2.js 库。我在 github.com 上读到,这个 .js 在全局对象中创建了 JSON 的属性,并让我们使用 stringify 和 parse 函数。但这在这里不起作用。请指教。
  • 我注意到您更新了您的问题并声明您使用的是 IE8。如果是这种情况,您不需要引用任何 json2.js,因为 IE8 原生支持 JSON.stringify 方法。
  • 好吧,我需要让这个应用程序与在没有 JSON 对象实现的浏览器上工作的用户兼容。
  • 我明白了,在这种情况下,您确实需要包含它。
  • 谢谢Darin,有了这里提到的建议,问题解决了,我可以正常调用WCF了。
【解决方案2】:

您在所有应该使用json 的地方都使用json2

请将您的 ajax 调用更改为

data:JSON.stringify(parameters),
contentType: "application/json; charset=utf-8",
dataType: "json"

在不相关的旁注中,您可以省略 charsetdataType 并像这样更改调用

data:JSON.stringify(parameters),
contentType: "application/json;",

【讨论】:

  • 感谢 Naveen,但我仍然遇到同样的问题。显示以下错误信息 Microsoft JScript runtime error: 'JSON' is undefined Please inform.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多