这是我的代码:
$result = mysql_query("SELECT * FROM Product_Characteristics");
$charact_array = array();
while($row = mysql_fetch_array($result)) {
$charact_array[$row['PC_ID']] = $row['Title'];
}
$JSON_char = json_encode($charact_array);
echo $JSON_char;
回音响应是这样的:
{"1":"product1","2":"product2","3":"product3","4":"product4"}
一旦返回此数据,我不确定如何使用javascript中的eval函数访问这些值...
通常,使用eval函数我可以得到类似这样的值:
{
"ptypes": {
"aptype": [
{
"id": "1",
"title": "product1"
},
{
"id": "2",
"title": "product2"
}
]
}
}
使用这样的代码:
var JSONobject = eval('(' + msg + ')'); //msg is the JSON response from above
alert(JSONobject.ptypes.aptype.title[0]) // product1
我基本上需要能够访问JSON中的值(我在上面从PHP关联数组编码)并循环遍历它们。
如果这是不可能的,或者最好将我的JSON数据封装在“ptypes”和“aptype”结构中(这似乎没有必要),我感谢任何建议。
答案 0 :(得分:3)
如果您收到实际字符串,可以使用
进行解析var jsonObj = JSON.parse(msg);
alert(jsonObj[1]);
你应该做的是返回正确的内容类型
// at the end of your PHP script
header('Content-type: application/json');
echo $JSON_CHAR;
exit;
然后,您可以使用类似jQuery的getJSON()
函数
$.getJSON('some/url.php', function(data) {
alert(data[1]);
});