如何解析JSON对象?
我试图通过java-script获取来自php web服务的数据。解析JSON时发生了我的项目错误。这样如何解析JSON对象?
<?php
header("Content-Type:application/json");
try {
if(!empty($_POST['mobile_number']))
{
$number = $_POST['mobile_number'];
$number = $_POST['user_type'];
deliver_response(200, "success", $number);
}
else
{
deliver_response(400, "no parameter", $number);
}
} catch (Exception $e) {
echo("message".$e->getMessage());
}
function deliver_response($status,$status_message,$data)
{
header("HTTP/1.1 $status $status_message");
$response['status'] = $status;
$response['status_message'] = $status_message;
//$response['data'] = $data;
$json_response = json_encode($response);
echo $json_response;
}
?>
和IM尝试
我的PHP Web服务调用Web服务上面这样
function logingAuth(){
var mnumber= $("#uname").val();
var utype= $("#pword").val();
try{
$.post("http://192.168.1.55/rest/signup.php", { mobile_number: mnumber,user_type:utype }, parseResults);
}
catch(err)
{
alert(err.message);
}
function parseResults(json){
var obj = jQuery.parseJSON(json);
alert(obj.status);
}
}
但是这一次并不是因为变种obj = jQuery.parseJSON(json);
线的工作。
如果我这样调用它的工作
function parseResults(json){
alert(json.status);
}
这是什么问题呢?
jQuery将自动识别您的响应类型并采取适当的行动。在这种情况下,它会自动将JSON反序列化为一个对象,因此当您试图对一个对象进行反序列化时,您致电parseJSON
将导致错误。只需删除该行:
function parseResults(json){
alert(json.status);
}
谢谢你的快速回复。实际上,我使用jQuery mobile.is,没有这条线实现。 – Suravi 2015-01-21 09:17:31
这很好,这是普通的jQuery的一部分。 jQM对此没有影响。 – 2015-01-21 09:25:10
没问题,很乐意帮忙 – 2015-01-21 09:32:36
当你parseJSON,你解码成数组。那么你不能做json.status – onegun 2015-01-21 09:14:26