切片JSON字符串

时间:2012-07-13 16:12:11

标签: javascript parsing json slice

我从MySQL获取数据并回显JSON编码数据,如下所示:

$result = mysql_query ("SELECT * FROM order_list");
$myjsons = array();
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
    $myjsons[$i] = json_encode(array($row));
    $i++;
}
echo json_encode($myjsons);

我有一个Javascript函数,它读取字符串并在文本框中显示:

if(ajaxRequest.readyState == 4){
$.post('userfind.php', function(data) {
    $("#txtfld").val(data);
    var arr =data.slice(1);
    var user_arr = arr.slice(0,-1);
    var json = user_arr,
    obj = JSON.parse(json);
    alert(obj.user_id);
    $("#resultTXT").val(obj.user_id);
    },'json'
    );}
}
ajaxRequest.open("POST", "userfind.php", true);
ajaxRequest.send(null); 
    }

问题是txtfld将字符串显示为[{“user_id”:“2790”,“fre ..... tst”:“”}]并且resultTXT因为两个[]而没有显示任何内容。我试图使用切片删除它们,但似乎切片不适用于JSON字符串。我还可以做什么来删除[],以便resultTXT显示user_id?

由于

1 个答案:

答案 0 :(得分:0)

  1. 将数组转换为json。
  2. php不需要下一个数组元素的索引
  3. 我还会添加正确的标题“application / json”
  4. $ row已经是一个关联数组

  5. $result = mysql_query ("SELECT * FROM order_list");
    $myjsons = array();
    while ($row = mysql_fetch_assoc($result)) {
     $myjsons[] = $row;
    }
    header('Content-type: application/json');
    echo json_encode($myjsons);
    

    这为您提供了正确格式化的json

    在javascript中访问你的json你做:

    var obj=JSON.parse(json);
    

    我假设你的mysql返回一个订单或用户列表[{“user_id”:1},{“user_id”:2}]所以如果你想访问第一个用户的id:

    obj[0].user_id
    

    但如果我误解了你可以发布更多关于你的json的信息。