Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON无效,但JSON看起来有效_Javascript_Jquery_Json_Parsing - Fatal编程技术网

Javascript JSON无效,但JSON看起来有效

Javascript JSON无效,但JSON看起来有效,javascript,jquery,json,parsing,Javascript,Jquery,Json,Parsing,我正在抓取一个字符串并使用$.parseJSON(字符串),但不断出现以下错误: uncaught exception: Invalid JSON: {"0":{"chartHtml":"<p> Slide 1</p> ","presNote":"","chartOrderIndex":0},"1":{"chartHtml":"<p> Slide 2</p> ","presNote":

我正在抓取一个字符串并使用$.parseJSON(字符串),但不断出现以下错误:

uncaught exception: Invalid JSON: {"0":{"chartHtml":"<p> Slide 1</p> ","presNote":"","chartOrderIndex":0},"1":{"chartHtml":"<p> Slide 2</p> ","presNote":"","chartOrderIndex":1},"2":{"chartOrderIndex":2},"3":{"chartHtml":"<p> e 3</p> ","presNote":"","chartOrderIndex":3},"4":{"chartHtml":"<p> Slide 4</p> ","presNote":"","chartOrderIndex":4},"5":{"chartHtml":"<p> Slide 5</p> ","presNote":"","chartOrderIndex":5},"6":{"chartOrderIndex":6}}
运行slideJson.d后调试期间的Firebug结果:

    >>> slideJson.d
"{"0":{"chartHtml":"<p> Slide 1</p> ","presNote":"","chartOrderIndex":0},"1":{"chartHtml":"<p> Slide 2</p> ","presNote":"","chartOrderIndex":1},"2":{"chartOrderIndex":2},"3":{"chartHtml":"<p> e 3</p> ","presNote":"","chartOrderIndex":3},"4":{"chartHtml":"<p> Slide 4</p> ","presNote":"","chartOrderIndex":4},"5":{"chartHtml":"<p> Slide 5</p> ","presNote":"","chartOrderIndex":5},"6":{"chartOrderIndex":6}}"
下面是对json进行反序列化的一些调用:

function (slideJson) {
var slideObj, jsonStr;
if (slideJson.d) {
    slideObj = $.parseJSON(slideJson.d);
用于获取内容类型为的Json的Ajax调用:

$.ajax({
    url: 'Someurl',
    type: "POST",
    data: "{}",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (data) { somenamespace.loadSlides(data); }
});

您的JSON有效,请检查

你的内容类型如何?如果使用PHP,请设置以下标题:

header('Content-type: application/json');

您不必使用
$。parseJSON
格式良好。试着直接使用它


工作

所讨论的JSON字符串最终在
chartHTML
属性中包含
\n
\r
,默认情况下,它们由CKeditor
.getData()方法生成。由于我粘贴的是firebug的错误,它们不可见,JSON似乎有效,这导致了我的困惑


感谢那些回答问题的人。

我记得阅读parseJSON时需要将键和值双引号。但我在文档中再也找不到了。。。嗯…@John Strickler:只有在字符串值的情况下,值才会在JSON中引用。这个问题有点误导。返回的json实际上是ShankarSangoli在下面进一步提到的有效json。没有理由使用$.parseJSON。
dataType:“json”
为您解析json。同意。我复制了你的JSON,用反斜杠引号替换了所有引号,将其输入到ChromeJS控制台,并在其上运行JSON.parse,结果很好;在调试会话期间,返回“string”,这使我相信它需要被解析?如果它是一个字符串,那么您需要解析它。