2012-06-01 18 views
0

我看起來像下面這樣的json,雖然這只是它的開始,而不是整個地段。在JQuery的Ajax調用中使用帶有冒號的JSON數據

{"ns1:AmplifyResponse":{"AmplifyReturn":{"Topics":{"Domains":null,"TopTopics":[{"Topic":{"Name":"loo","Value":5.00}," 

我做這個jQuery Ajax調用得到它,它再一次修剪:

$.ajax ({ 
    type: "POST", 
    url: 'ajax/openampcheck.php', 
    dataType: 'json', 
    async: true, 
    data: {"inputtext": inputmaintext}, 
    success: function(msg){ 
$('#oaresult').html(msg.ns1:AmplifyResponse.AmplifyReturn.Topics.TopTopics[1].Topic.Name); 
.... 
在Chrome控制檯

這給了我一個錯誤...未捕獲的SyntaxError:意外的標記。 最後一行,這似乎是是與這裏的結腸...

ns1:AmplifyResponse 

,如果我在引號把它包起來,雖然,即

$('#oaresult').html(msg."ns1:AmplifyResponse".AmplifyReturn.Topics.TopTopics[1].Topic.Name);

然後我得到這個錯誤:

Uncaught SyntaxError: Unexpected identifier 

應該如何解決呢?

回答

2
$('#oaresult').html(
       msg["ns1:AmplifyResponse"] // you have to use object["prop"] here 
       .AmplifyReturn 
       .Topics 
       .TopTopics[1] 
       .Topic.Name); 

$('#oaresult').html(msg["ns1:AmplifyResponse"]["AmplifyReturn"]["Topics"]["TopTopics"][1].["Topic"]["Name'}); 
+0

謝謝,是:味精[ 「NS1:AmplifyResponse」] [ 「AmplifyReturn」]等正確的方式,他們應該做的是最好的實踐? – fiscme

+0

在我看來,除非需要,否則不要括號和引號。多餘的字符會降低可讀性。 –

1

嘗試:

$('#oaresult').html(msg["ns1:AmplifyResponse"].AmplifyReturn.Topics.TopTopics[1].Topic.Name); 
+0

非常感謝,在codeparadox之前回答30秒時標記爲正確! – fiscme

+0

謝謝,但你應該給他。他打了我7秒。他於16時01分38秒回答,我於16時01分45秒回答。 :) –