首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery解析的php编码变量调试不可见的JSON错误

使用jQuery解析的php编码变量调试不可见的JSON错误
EN

Stack Overflow用户
提问于 2013-12-21 19:14:18
回答 2查看 492关注 0票数 2

我使用php json_encode向客户端发送一堆值,其中jquery

代码语言:javascript
复制
{"data":{"application":{"basics":{"email":"jepp@mily.com","name_first":"Step","name_last":"Bob","phone":"9210938102938","occupation":"unemployed","website":"wwwcom"},"application":{"title":"Default title","guid":"9as8ua9sd8ua9sdu","language":"sv"},"job":{"title":"joburl","url":"joburl"},"letter":{"letter":"abadbabkbakbakbakbakbakbabk"},"work-experiences":[{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"},{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"},{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"}],"educations":{"title":"Default Education","url":"ixi","date_from":"1970-01-01","date_to":"1999-12-31"},"skills":{"title":"Defailt SKILL","url":"wwwsdcom","date_from":"ixi","date_to":"ixi"},"work-samples":{"title":"A sample of my work","url":"wwwsdcom","date_from":"ixi","date_to":"1999-12-31"}}},"error":[],"warning":[]}

如果我试图在脚本中使用$.parseJSON解析此代码,则不会得到任何对象。但是,如果我将它直接复制/粘贴到控制台中(并添加‘在开头和结尾’),它就能工作。没有错误代码,我也看不到换行符。JSON lint-工具不返回错误..。

我已经设置了正确的内容类型,并尝试了jquery提供的不同的json解析器。

我错过了什么?

代码是从jQuery教程中剪切/粘贴的。我尝试了一些不同的例子,但都失败了。

代码语言:javascript
复制
var jqxhr = $.getJSON( "application_controller.php", function() {
    console.log( "success" );
})
.done(function() {
    console.log( "second success" );
})
.fail(function() {
    console.log( "error" );
})
.always(function(data) {
    console.log( "complete" );
    application = data;  
});

// Perform other work here ...

// Set another completion function for the request above
jqxhr.complete(function() {
    console.log( "second complete" );
});
});

是真的,我在控制台里破译的。这是一个在脚本中执行的片段(它也不能工作):

代码语言:javascript
复制
$.ajax({
  dataType: "json",
  contentType: "application/json",
  url: 'application_controller.php',
  data: '{id:id}',
  success: function( data ) {
        application = data.responseText;
        application = $.parseJSON(application);/* < string */     
    },
    fail: console.log("fail"),
    complete: function(data) {
        console.log(data.responseText);
        application = data.responseText;
    }
});
EN

回答 2

Stack Overflow用户

发布于 2013-12-21 20:25:25

回答我自己的问题:

为了解决这个错误,我不得不将我所有的php文件从"utf8“编码更改为”没有BOM的utf8“。然后起作用了。

当包含一个没有utf8编码的文件(当然,在层次结构中很低)时,它会污染所有其他文件并破坏输出。

票数 1
EN

Stack Overflow用户

发布于 2013-12-21 19:26:54

使用JSON.parse(jsonString)函数。

代码语言:javascript
复制
var jsonString = '{"data":{"application":{"basics":{"email":"jepp@mily.com","name_first":"Step","name_last":"Bob","phone":"9210938102938","occupation":"unemployed","website":"wwwcom"},"application":{"title":"Default title","guid":"9as8ua9sd8ua9sdu","language":"sv"},"job":{"title":"joburl","url":"joburl"},"letter":{"letter":"abadbabkbakbakbakbakbakbabk"},"work-experiences":[{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"},{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"},{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"}],"educations":{"title":"Default Education","url":"ixi","date_from":"1970-01-01","date_to":"1999-12-31"},"skills":{"title":"Defailt SKILL","url":"wwwsdcom","date_from":"ixi","date_to":"ixi"},"work-samples":{"title":"A sample of my work","url":"wwwsdcom","date_from":"ixi","date_to":"1999-12-31"}}},"error":[],"warning":[]}';

var myData = JSON.parse(jsonString);

小提琴

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20722579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档