我有一个PHP 5.4.3版本的WAMP服务器。我用下面的php文件编写的JSON数据是代码(submit.php)。
$username = 'User';
$comment = 'Test comment';
$date = date("Y-m-d G:i:s");
$image = '/img/sephiroth.png';
$return = array(
'username'=> $username,
'comment' => $comment,
'date' => $date,
'image' => $image );
echo json_encode($return);
现在我有一个javascript文件(script.js)。
$.ajax({
type: "POST",
url: "submit.php",
data: dataString,
cache: false,
success: function(result){
alert(result); //It is showing all the JSON data.
$value = result;
$data = json_decode($value,true);
alert($data);
}
});
我想分别解码所有JSON数据。例如用户名,评论,日期,图像。所以,我可以在网页上显示它们,目前所有数据都汇集在一起。我尝试了多次多个选项(php数组或result.username或结果['用户名'],但没有运气。
现在我遇到了错误。
ReferenceError: json_decode is not defined
$data = json_decode($value,true);
答案 0 :(得分:4)
你不能在JS中使用json_decode
json_decode是PHP函数
使用jQuery.parseJSON(json_data)
来解析您的json数据;
jQuery.parseJSON( result );
更改
$value = result;
$data = json_decode($value,true);
致:
jQuery.parseJSON( result );
答案 1 :(得分:2)
尝试以下方法:
success: function(result){
var res = $.parseJSON(result);
var data = [res.username, res.comment, res.date, res.image]; // Array of the received response
}
这样您就可以获得所需的输出
答案 2 :(得分:1)
尝试如下:
$.ajax({
type: "POST",
url: "submit.php",
data: dataString,
cache: false,
success: function(result){
alert(result); //It is showing all the JSON data.
jQuery.parseJSON( result );
}
});
答案 3 :(得分:0)
使用ajax的dataType选项并将其值设置为json。 然后,您可以访问响应['username']
答案 4 :(得分:0)
我的例子:
服务器端返回final ViewHolder perItemHolder = holder;
holder.textQtyIncrease.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(p == 9) {
Toast.makeText(context, "You have reached to maximum order quantity", Toast.LENGTH_LONG).show();
return ;
}
else {
p = p+1;
perItemHolder.textViewQuantity.setText(""+p);
totalPrice = p * cart.getPrice();
cart.setTotal(totalPrice);
perItemHolder.textViewTotal.setText("$ " + df.format(cart.getTotal()));
}
}
});
你可以像javascript数组一样处理json,不需要解码它。
下面的{"username":"xxxxx","data":"xxxxxxxxxxxx and more"}
本身就是结果数组。
data
并确保php发送了标头 $.ajax({
type: "POST",
url: "submit.php",
cache: false,
success: function(data){
var username = data['username'];
var data = data['data'];
//and so on
}
});
Content-Type:application/json