【问题标题】:parse json array which contains sql array解析包含 sql 数组的 json 数组
【发布时间】:2009-10-12 12:15:53
【问题描述】:

我的问题:如何解析 json 数组?

我是这样发送的:

$data= mysql_fetch_array($r);
header('Content-type: application/json');

?>              
{
    "check": "<?php echo $check?>",
    "productcode": "<?php echo $code?>",
     "values": [<?php echo $data?>]
}
<?php

在 ajax 方面,我在单个值上执行此操作,效果很好

success: function(data,textStatus){
    //return values
    identification=data.check;

如果我想访问数组,我会做这样的事情,但我得到了 undefined

value=data.values[1];

我做错了什么?

【问题讨论】:

  • 是啊,昨天听说我真的不想得罪任何人。对不起,我从来没有太注意过左边的那些东西。从现在开始我会这样做。一开始我真的不知道我为什么要冒犯任何人,因为我总是说谢谢。

标签: jquery arrays json parsing


【解决方案1】:

您也需要将数组编码为 JSON:

{
    "check": "<?php echo $check?>",
    "productcode": "<?php echo $code?>",
     "values": [<?php echo json_encode($data); ?>]
}

最简单的方法可能是将所有内容放在 PHP 数组中并将其序列化为 JSON:

$output = array(
    "check" => $check,
    "productcode" => $code,
    "values" => $data
);

echo json_encode($output);

那么你就可以确定它被正确编码了。

【讨论】:

  • 谢谢,你能评论一下 mysql_NUM,我还能在 ajax 成功函数中按名称获取值吗?
  • 您可以使用返回关联数组的mysql_fetch_assoc。这意味着,您可以通过 JavaScript 中的名称(而不是索引)访问一行中的列。只需检查结果,然后您就会看到它的作用。
  • 对于 msql_fetch_array,关联是默认值,因为我通过名称获取结果,或者两者都来自@RC,下面的评论。
  • 哦,好的,抱歉。手册上说 MYSQL_NUM 给你一个非关联数组。
【解决方案2】:

试试这个:

$data= mysql_fetch_array($r);
header('Content-type: application/json');

$json = array(
    'check' => $check,
    'productcode' => $code,
    'values' => $data
    );

print json_encode($json);

它比手动打印 json 更整洁。 json_encode 将 PHP 数组转换为 json 字符串。

【讨论】:

    【解决方案3】:
    $data= mysql_fetch_array($r, MYSQL_NUM);
    

    可以解决问题。

    在ajax部分获取json会很有帮助

    【讨论】:

    • 那么它知道什么,一个联想?关联不利于解析吗?
    • 根据文档,它既是关联的又是数字的
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多