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

使用jQuery.parseJSON的JSON解析错误

濮阳驰
2023-03-14
问题内容

这段代码失败,并带有指示无效JSON的异常:

var example = '{ "AKEY": undefined }';
jQuery.parseJSON(example);

我可以通过用空字符串替换所有未定义内容来修复它。undefined不是JSON的一部分吗?


问题答案:

如果您可以解决这个问题,那么 令牌 undefined实际上是未定义的。

请允许我详细说明:即使JavaScript具有称为undefined的特殊原始值,undefined也不
是JavaScript关键字,也没有任何特殊含义。通过与undefined定义对象进行比较,可以破坏测试对象是否存在的代码。

var obj = { BKEY: 'I exist!' };
if (obj.AKEY == undefined) console.log ('no AKEY');
if (obj.BKEY == undefined) console.log ('should not happen');

undefined='uh oh';

if (obj.AKEY == undefined) console.log ('oops!'); // Logically, we want this to execute, but it will not!
if (obj.BKEY == undefined) console.log ('should not happen');

唯一的控制台输出将是“ no AKEY”。分配给全局变量undefinedobj.AKEY == undefined由于变为false
_undefined_ != 'uh oh'obj.BKEY == undefined仍然返回false,但这仅仅是因为我们很幸运。如果我已经设定obj.BKEY='uh oh',那obj.BKEY == undefined将是 真的即使它确实存在

您可能需要显式设置AKEYnull。(顺便说一句,null 一个关键字;null='uh oh'引发异常)。

您也可以简单地AKEY从JSON中省略,在这种情况下,您会发现:

typeof(example.AKEY) == 'undefined'

(如果设置AKEYnull,则为typeof(example.AKEY) == 'object'。)

设置为null和忽略之间的唯一真正区别是您是否希望密钥出现在foreach循环中。



 类似资料:
  • 问题内容: 我想使用Javascript 解析此内容。数据如下所示: 在线上的每个教程都教您如何使用Twitter解析JSON,但是我不太确定如何使用JSON解析。 我想在一个网站上进行设置,以查看NFL团队在一个有趣的项目中获得的分数,以及有关解析JSON的良好学习体验,因为我不太在乎Twitter的东西。 这可能吗?有什么好的入门教程吗?甚至一些起始代码? 问题答案: 一般来说,您可以使用 J

  • 问题内容: 我有以下JSON字符串来自外部输入源: 这是格式错误的JSON字符串(“ id”和“ value”必须用引号引起来),但无论如何我都需要对其进行解析。我已经尝试了simplejson和json- py,但似乎无法将其设置为解析此类字符串。 我正在Google App引擎上运行Python 2.5,因此任何基于C的解决方案(例如python-cjson)都不适用。 除了上面列出的JSON

  • 嗨,我使用截击作为JSON解析。我正在使用POST方法并在POST请求中发送参数。我在解析数据时遇到了以下错误,我遇到了以下错误。我想用截击。我尝试过使用JsonArrayRequest,但它不允许将参数作为JSONObject发送,我在代码中使用JSONObject。 请求就像 反应就像 以下是我的代码

  • 问题内容: 尝试对mongoexport使用查询会导致错误。但是mongo-client会评估相同的查询,而不会出错。 在mongo-client中: 使用mongoexport: 产生的错误: 但是预先在mongoexport中进行乘法: 作品! 为什么mongo在这两种情况下对查询的评估不同? 问题答案: 该命令行实用程序支持传递查询 JSON 格式,但您要评估 的JavaScript 在您的

  • 和 是我用来获取JSON并对其进行解析的类。但是当我运行第一个时,它会报告以下堆栈跟踪: 它告诉我添加JsonReader。将lenient(true)设置为我的代码,但我的代码不使用JsonReader。那么如何将setLenient(true)添加到代码中? 编辑:添加API响应(格式化):

  • 我有以下命令。我想循环使用此键和值,即对于冰/冷的项目,打印“值” 我试过这个: 却给我错误