【发布时间】:2014-09-27 05:02:00
【问题描述】:
我正在尝试通过 JSON 将 PDO 关联数组传递给一些 javascript 代码。我已经验证了 php 代码在生成记录集方面是有效的,但是在结果上使用 jquery 的 $.parseJSON 时出现错误。返回结构中的前三个值都是整数,解析器可以正确理解它们。但是,一旦它达到第一个字符串值,所有赌注都将关闭。报告的错误是意外的标记、数字等,具体取决于正在解析的非数字字段。日期、字符串等都属于同一个问题。
我在 StackOverflow 上查看了其他线程,发现很多看起来相似,但没有完全相同的问题。
这里是返回的 JSON 数组的示例(来自 php 的 json_encode,为简洁起见截断):
{ "idInventory":"451", "idAssociationGroup":"78","idMasterComponent":"601", "QuantityDescription":"Approx 4,450 GSY", "Quantity":null, "Location":"Hallways, Lobby, Locker Room, Library, and Lounge" }
前三个元素都通过下面的代码正确发布,但 QuantityDescription(当然还有它之后的任何内容)都失败了。
这是 javascript 代码的一部分,它应该解析结果并将其放置在屏幕上:
$.getJSON(
path + "/Inventory/getComponent.php",
{idComponent: idComponent},
function (data) {
document.getElementById('idInventory').innerHTML = $.parseJSON(data.idInventory);
document.getElementById('idAssociationGroup').innerHTML = $.parseJSON(data.idAssociationGroup);
document.getElementById('idComponentsUsed').innerHTML = $.parseJSON(data.idMasterComponent);
document.getElementById('QuantityDescription').innerHTML = $.parseJSON(data.QuantityDescription);
/* more fields go here, but I've snipped them for brevity, since *
* the error is already exposed */
}
);
【问题讨论】: