解析来自php源代码(symfony2)的JSON响应时出现了一个奇怪的问题。这可能是非常微不足道的,但我不熟悉javascript,所以已经在这上面花了很多时间。解析JSON来自php中的json时的奇怪行为
我有一个序列化的PHP数组在我的数据库中,我反序列化,然后转换为JSON。
$response->setContent(json_encode(unserialize($onderdeel->getArticles())));
在客户端,我只是用jQuery来解析json数据。
$.ajax({
......
success: function(data){
articleObject = jQuery.parseJSON(data);
}
});
但是这给了我一些奇怪的结果,有些值被设置为undefined,而他们应该有一个值。但有些值是可以的。
这是原始的结果我从PHP脚本得到它得到的前解析:
{
"onderdeel":{
"onderdeel_id":"1546",
"onderdeel_type":"overgordijnen160",
"onderdeel_naam":"",
"onderdeel_opmerkingen":"",
"berekend_prijs":"0",
"status":"",
"active_artikel_id":"0",
"naam_ruimte":"",
"opmerkingen":""
},
"artikels":[
{
"ruimte":"",
"opmerkingen":"",
"korting":"",
"berekend_aantal_banen":"2",
"aantal_banen_zelf_ingegeven":"",
"berekend_hoeveelheid":"400",
"berekend_multiplicator":"1.9",
"berekend_valide":"",
"berekend_prijs_met_korting":"0.00",
"berekend_prijs":"20040040.00",
"stap2":{
"valide":"valide",
"hoogte":"100",
"breedte":"100",
"banen":"stel",
"stof":{
"id":"9",
"naam":"AGRA",
"modelnummer":"123456",
"stofbreedte":"140.00",
"rapporthoogte":"100.00",
"kleur":"nul",
"prijspermeter":"100.00",
"wasvoorschriften":"COOL WASH COOL IRON",
"stock":" "
},
"railtype":{
"id":"7",
"naam":"rails type 1",
"modelnummer":"RT-2",
"stock":"200.00 stuks",
"rapporthoogte":"null",
"prijspermeter":"null",
"wasvoorschriften":"null"
}
},
"maakwijze":{
"status":"",
"maakwijze_type":"lint",
"plooi":"",
"retour_plooi":"",
"cm_plooi":"",
"hoofdje":"100",
"berekende_string":"LINT > gewone voering",
"voering_string":"gewone voering",
"voering":{
"voering_id":"",
"voering_prijs":"",
"voering_onderdeel":"",
"voering_type":""
},
"voering_aan":"true",
"confectie":{
"confectie_id":"2",
"confectie_prijs":"10000000.00",
"confectie_zoom":"25.31",
"confectie_onderdeel":"OG < 160",
"confectie_type":"LINT > gewone voering"
},
"valide":"valide",
"loodjes":"loodjes"
},
"prijs":{
"prijs_valide":"",
"prijs_korting":"",
"prijs_plaatsing":"",
"prijs_berekend_voor_artikel":"",
"prijs_berekend_voor_artikel_met_korting":"",
"prijs_berekend_stofprijs":"40000",
"prijs_berekend_confectieprijs":"20000000",
"prijs_berekend_prijslood":"40",
"prijs_berekend_voering":"0",
"prijs_railtype_prijs":""
}
}
],
"onderdeel_naam":"",
"onderdeel_opmerkingen":""
}
但是之后我分析它是这样的结果:
例如artikels。 0.maakwijze.maakwijze_type设置为undefined,而在原始json中设置为'lint'。
奇怪的是,如果我只是原始的JSON复制到铬控制台和具有相同功能的jQuery.parseJSON(“复制文本”)解析它的所有值都OK
我也换成了jQuery。 parseJSON与标准的JSON.parse,但这给了我相同的结果
任何想法是什么原因造成的?
谢谢!
解析数据后,你对数据做了什么吗? – Musa 2013-05-05 22:00:37