Jquery Json 解析错误

Posted

技术标签:

【中文标题】Jquery Json 解析错误【英文标题】:Jquery Json Parse error 【发布时间】:2014-08-28 19:53:05 【问题描述】:

这次我被 Json Parse 错误锁定了。目前我正在使用 jQuery Mobile 在 Asp.net MVC 4 中开发 Web 应用程序。在 我有文本框和按钮的页面中,会出现此问题

我正在使用 jquery 2.1.1 js 文件 .. 发生错误

jQuery.parseJSON = function( data ) 
    return JSON.parse( data + "" ); // Here data comes as undefined 
;

视图中的代码 下面在我的页面中有文本框和按钮

 <div class="HwySearchTextBoxSmaller">
                            @html.TextBoxFor(Model => Model.txtPickingScan, new  @autofocus = "autofocus" )
                        </div>

                        <div id="btn" style="float: left; margin-top: 1.2em; margin-left: 1em;">
                            <input type="submit" id="btnSearchMP" name="btnSearchMP" class="Hwy905SearchIcon" data-role="none" value="" />
                        </div>
<div id="dButton">

                    <input type="submit" id="btnMPSearch" name="btnMPSearch"  data-theme="d" value="@Resources.ViewBatch"  />
                    <input type="submit" id="btnMPSearch1" name="btnMPSearch"  data-theme="d" value="@Resources.ViewGrp"  />
            </div>

每当我输入文本框、模糊、按钮单击、keyup 和其他相关事件时,都会弹出此错误

我上传的错误图片

由于此问题,页面无法在任何浏览器中运行。

请帮帮我。当然,我需要为此找到解决方案。请帮帮我

我没有使用 jquery 2.1.1 文件,而是使用了 Google api ,因为 jquery libray 也显示了同样的错误

下面是代码的dom图片

【问题讨论】:

jQuery 2+ 删除了对 IE 及其向后方式的大量支持。尝试使用 1.11 这种情况不仅发生在 IE 中,而且发生在所有其他浏览器中 在这种情况下,请将您的代码添加到问题中。 确保您确实有一个有效的 JSON 字符串来解析,而不仅仅是一个使用 toString() 隐式转换的对象。这里可以显示数据的内容吗? 请在上面找到我更新的问题 【参考方案1】:

尝试以这样的方式改进你的功能:

jQuery.parseJSON = function (data) 
   console.log(data + "");
   return JSON.parse(data + "");
;

确保 $.parseJSON 函数的调用者提供了正确的格式化参数“data”。您可以使用浏览器的调试器来检查调用者堆栈。

【讨论】:

雅丹尼尔,问题是我知道数据无效,但是我可以尝试什么解决方法或解决方案来摆脱这个 确切的情况是,当我有按钮或文本框的脚本时,当我们单击该按钮或文本框时会发生此问题 使用在线 JSON 验证器来验证您的 JSON。在那里编辑它并硬编码更正后的 JSON 以提供您的代码。【参考方案2】:

我认为您的问题与JSON 数据有关。您正在使用的 JSON 的 语法 可能存在问题。我建议您使用一些在线JSON Validator 工具(如http://jsonformatter.curiousconcept.com)在线验证 JSON。更正 JSON 后,通过在代码中硬编码来使用相同的 JSON 来测试此场景。

【讨论】:

【参考方案3】:

您好,解决了上述问题。实际上,在捆绑 js 文件时,我删除了 validate 和 validate unobtrusive js files,问题就解决了。谢谢大家帮助我

【讨论】:

以上是关于Jquery Json 解析错误的主要内容,如果未能解决你的问题,请参考以下文章

jquery ajax调用返回JSON解析错误

jQuery.ajax() 解析器错误

使用 JSON 从 AJAX 和 JQuery 调用简单的 Web 服务(.asmx 文件) - 解析错误

解析 JSON 给出“意外的令牌 o”错误 [重复]

JQuery - $.ajax() - 使用 JSONP 的跨域 - 仅在 IE 8 中获取“解析器错误”(在 IE 7 中工作)

jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data(示例代码