2017-06-05 49 views
2

我使用jquery ajax检索了我的json数据。我的数据是:json数据不能在服务器上工作

[{"id":"2","checkNo":"74152","routingNo":"896523","accountNo":"741236","confirmAccountNo":"85263","custEmail":"[email protected]","custName":"jonita gandhi","custStreetAddress":"address2","custPhone":"78456","custCity":"city2","custState":"state2","custZipCode":"4123","amount":"71","memo1":"memo3","memo2":"","cmp":"support","bankName":"Federal Bank","bankAddress":"A-19, Golden avenue","bankCity":"Florida","bankState":"FE","isDeleted":"0","createdDtm":"2017-05-30 14:47:48","updatedDtm":null}] 

jQuery的成功,我保存数据的变量

var jsonData = JSON.parse(JSON.stringify(data)); 

,当我试图访问checkNo。使用jsonData [0] .checkNo它产生未定义但是当我检查它使用

console.log(jsonData) 

它输出数据,其是相同顶部。

注意:这个问题只产生在服务器上,但它在我的本地主机上正常工作。

编辑:

这里是我的Ajax调用:

jQuery.ajax({ 
url: postUrl, 
data:queryString, 
type: "POST", 
success:function(data){ 
    switch(action) { 
     case "edit": 
     jsonData = JSON.parse(data); console.log(jsonData); 
     //var jsssss = JSON.parse(JSON.stringify(data)); console.log(jsssss); 
     $("#custEmail").val(jsonData[0].custEmail); 
     $("#custName").val(jsonData[0].custName); 
     $("#custCheckNo").val(jsonData[0].checkNo); 
     $("#edit_model").modal(); 
     break; 
    //some more code 
} 
}); 
+1

尝试删除'JSON.stringify'。 – Arg0n

+0

@ Arg0n删除后它工作正常在我的服务器上,但现在,在本地主机上它说:Uncaught SyntaxError:在位置1的JSON意外的令牌o –

+0

我会说你的服务器上有一个'JSON字符串',但在本地主机上一个“对象”。尝试使用:var jsonData = typeof data ==='string'? JSON.parse(data):data;' – Arg0n

回答

0

改变你并不需要解析和/或字符串化您的数据。 JQuery为你做这件事。 你只需要实现这个代码。

$.ajax({ 
    type: "POST", 
    contentType: "application/json", 
    url: postUrl, 
    data: queryString, 
    dataType: "json", 
    success:function(data){ 
     switch(action) { 
      case "edit": 
      jsonData = data; 
      $("#custEmail").val(jsonData[0].custEmail); 
    break; 
    //some more code 
    } 
}); 
+0

它为我工作。谢谢。我希望我可以upvote你。在此之前,我使用&在我的PHP页面上发送行数据,我使用$ _POST方法来获取它。 –

+0

确保你以这种格式发送json格式的数据:queryString ='{“action”:“'+ action +'”,“checkId”:“'+ id +'”}';关键和价值必须在杜贝编码中。 –

1

也许你是字符串化数据的两倍

您不必var jsonData = JSON.parse(JSON.stringify(data));

代劳这

var jsonData = JSON.parse(data); 

代码片段

var data ='[{"id":"2","checkNo":"74152","routingNo":"896523","accountNo":"741236","confirmAccountNo":"85263","custEmail":"[email protected]","custName":"jonita gandhi","custStreetAddress":"address2","custPhone":"78456","custCity":"city2","custState":"state2","custZipCode":"4123","amount":"71","memo1":"memo3","memo2":"","cmp":"Geeks Help","bankName":"Federal Bank","bankAddress":"A-19, Golden avenue","bankCity":"Florida","bankState":"FE","isDeleted":"0","createdDtm":"2017-05-30 14:47:48","updatedDtm":null}]'; 
 

 
var jsonData = JSON.parse(data); // remove your stringify 
 

 
console.log(jsonData[0].checkNo)

另外,如果你在你的Ajax调用做这样的事

$.ajax({ 
     type: "POST", 
     contentType: "application/json", 
     url: '/Hello', 
     data: { name: 'norm' }, 
     dataType: "json" 
     success: function(data){ 
     //Here your data is already a parsed object 
     var jsonData = data; 
     console.log(jsonData[0].checkNo) 
     } 
    }); 
+0

删除它后可以在我的服务器上正常工作,但现在,在本地主机上它说:未捕获的SyntaxError:意外的令牌o在位置1的JSON中,当我从服务器接收Json数据时, t包含'作为你的。 –

+0

在这种情况下,您将删除已解析的解析文件 –

+0

分享您的ajax调用。我认为它有'content type'和'dataType'设置 –

0

取出JSON.stringify。其已经从一个JSON字符串php .try与

var jsonData = JSON.parse(data); 

var data ='[{"id":"2","checkNo":"74152","routingNo":"896523","accountNo":"741236","confirmAccountNo":"85263","custEmail":"[email protected]","custName":"jonita gandhi","custStreetAddress":"address2","custPhone":"78456","custCity":"city2","custState":"state2","custZipCode":"4123","amount":"71","memo1":"memo3","memo2":"","cmp":"Geeks Help","bankName":"Federal Bank","bankAddress":"A-19, Golden avenue","bankCity":"Florida","bankState":"FE","isDeleted":"0","createdDtm":"2017-05-30 14:47:48","updatedDtm":null}]'; 
 
var jsonData = JSON.parse(data); 
 

 
console.log(jsonData[0].checkNo)

0

只凭这

var jsonData = JSON.parse(data); 

var data ='[{"id":"2","checkNo":"74152","routingNo":"896523","accountNo":"741236","confirmAccountNo":"85263","custEmail":"[email protected]","custName":"jonita gandhi","custStreetAddress":"address2","custPhone":"78456","custCity":"city2","custState":"state2","custZipCode":"4123","amount":"71","memo1":"memo3","memo2":"","cmp":"Geeks Help","bankName":"Federal Bank","bankAddress":"A-19, Golden avenue","bankCity":"Florida","bankState":"FE","isDeleted":"0","createdDtm":"2017-05-30 14:47:48","updatedDtm":null}]'; 
 
var jsonData = JSON.parse(data); 
 

 
console.log(jsonData[0].checkNo) 
 
console.log(jsonData[0].routingNo)

相关问题