【问题标题】:decoding MySQL string values encoded with php json_encode解码用 php json_encode 编码的 MySQL 字符串值
【发布时间】: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                                   */
    }
);

【问题讨论】:

    标签: php json pdo getjson


    【解决方案1】:

    摆脱您对$.parseJSON 的呼叫。整个响应是 JSON,$.getJSON 会自动为您解析。各个字段只是普通字符串,它们不是 JSON。

    所以第一个作业应该是:

    document.getElementById('idInventory').innerHTML = data.idInventory;
    

    所有其他任务都类似。

    【讨论】:

    • 完美,这正是我不理解的部分。感谢您的帮助!
    • @mforbes in stackoverflow 你通过接受答案来感谢人们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多