-1

我有

{"user_id":"2790","freelancer_name":"","order_id":"8895","orderamount":"33638.00","payment_method":"","payment_desc":"","order_st": "newlink","total_comission":"3046.08","auto_increment_id":"2","po_box":"","country":"","order_add":"","shipping_co":"","weight ":"0","fname":"","lastname":"","shippingcost":"0.00","paymentst":""}

{"user_id":"2790","freelancer_name":"","order_id":"9121","orderamount":"0.00","payment_method":"","payment_desc":"","order_st": "newlink","total_comission":"0.00","auto_increment_id":"1","po_box":"","country":"","order_add":"","shipping_co":"","weight ":"0","fname":"","lastname":"","shippingcost":"0.00","paymentst":""}

来自这个 PHP 代码

$result = mysql_query ("SELECT * FROM order_list");
$myjsons = array();
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
    $myjsons[$i] = json_encode(array($row));
$myjsons[$i] = substr($myjsons[$i], 1, -1);

    $i++;
}


echo json_encode($myjsons);

我试图访问每个元素,但似乎该数组只是一个字符串,没有像 user_id - order_id 这样的元素

这是读取 JSON 的 javascript

$("#txtfld").val(data[0]);
$("#resultTXT").val(data[1]);

我想让他们喜欢

txtfld = data[0].user_id 和 resultTXT = data[0].order_id ...

所以问题是获取用户ID订单ID等

4

1 回答 1

3

如果您echo在将结果返回给用户之前再次使用 json_encode (如在您的语句中),则对于此行...

$myjsons[$i] = json_encode(array($row));

...不要在循环内进行 json_encode。你是双重编码。看来您也不想在array()这里使用。所以就这样做:

$myjsons[$i] = $row;

实际上,您可以这样做:

$myjsons[] = $row;

并摆脱:

$myjsons[$i] = substr($myjsons[$i], 1, -1);

此外,正如有人在评论中指出的那样,您将希望var obj = JSON.parse(data);在客户端使用,尽管您可能希望有条件地添加一个JSON不支持它的库版本(例如,这个),因为它不是在较旧的浏览器中支持。

于 2012-07-14T01:35:08.960 回答