2012-05-17 24 views
2

。我现在送的邮政编码,一个PHP页面,并尝试JSON作为结果存储:第一次使用json获取json对象

$("#make_ajax_call").click(function() 
    { 
     var form_postcode = $("#postcode").val(); 
     $.ajax({ 
      type: "POST", 
      url: 'mapping-ajax.php', 
      data: { postcode: form_postcode}, 
      success: function(data) 
      { 
       var jsonObject = data; 
       var trimmedpostcode = jsonObject.trimmedpostcode; 
       alert(jsonObject); 
       alert(jsonObject.trimmedpostcode); 
       $('#result').html(data); 
       //alert('Load was performed.'); 
      } 
     }); 
    }); 

在我使用了PHP函数的另一端echo json_encode($return_array);

两个警报给我:

{"trimmedpostcode":"CO125WL","success":true,"outputstring":"CO125WL<br\/>"} 

Undefined 

怎么会第二个不返回 “CO125WL”?我需要以某种方式告诉JavaScript它的json对象吗?

回答

3

你试过:

dataType: 'json' 

这是我怎么拉与Ajax调用Javascript中的json信息。

1

你明白了。您需要致电:

var obj = JSON.parse(jsonstr); 

这会将JSON解析为JavaScript对象。

+0

很好,谢谢!你回答得太快了,我不能接受作为答案,但我会尽快通过stackoverflow让我。 'var obj = JSON.parse(data); \t \t \t \t \t alert(obj); \t \t \t \t \t alert(obj.trimmedpostcode);' – Djave

+0

你不应该。 $ .ajax能够解析JSON本身,使用它。 – Bergi

+0

没问题。仅供参考,其他答案同样正确。你可以设置数据类型,jQuery会自动为你调用这个方法。 – Jivings

0

我需要告诉JavaScript它的某个json对象吗?

是的,你需要告诉它它是一个json字符串。将响应的mimetype设置为适当的“application/json”,jQuery的智能将自动解析文本,并用对象而不是字符串调用success函数。

或者您可以将您的jQuery调用的dataType设置为"json",请参阅jQuery.ajax() documentation