2016-08-05 49 views
0

我是ajax/javascript的新手。我試圖解析響應下面Ajax請求:如何爲Ajax請求解析json響應?

function invokeMediationRestService(rql) { 

var resourceinfo; 
var request = $ 
     .ajax({ 
      type : "POST", 
      url : "REST_URL", 
      async : false, 
      data : 'SOME_DATA', 
      contentType : "application/xml", 
      dataType : "xml", 
      success: function(response) { 

      } 
    }); 

return resourceinfo; 

}

對於這個要求,我希望響應象下面這樣: JSON:

{ 「XML片段」:{ 「@payloadMode」:「JSON」, 「serializedPayload」:「{\」items \「:[{\」$ param \「:\」Response \「,\」mode \「:\」OUT \「, 「$值\」:[{\ 「資源\」:[{\ 「名字\」:\ 「ABC \」,\ 「電子郵件\」:\ 「[email protected] \」,\「別名\ 「:\」 cklm28 \ 「\ 」管理員\「:\ 」VBU \「,\ 」位置\「:\ 」QWERTY \「,\ 」部門\「:\ 」asdfg \「,\」 L astName \「:\」klm \「,\」displayName \「:\」klm,abc \「,\」containerID \「:\」456 \「,\」containerName \「:\」sfdghjjk \「,\」組ID \ 「:{\」 GUID \ 「:\」 23454356wert \ 「\ 」名稱\「:\ 」qweryugg \「,\ 」標籤\「:\ 」asdfgfdg \「,\ 」$類型\「:\」 sdfgdsf \ 「} \」 $類型\ 「:\」 sdfgsdfg \ 「},{\」 名字\ 「:\」 ABC \」,\ 「電子郵件\」:\ 「[email protected] \」, \ 「別名\」:\ 「cklm29 \」,\ 「管理員\」:\ 「sdfgrt \」,\ 「位置\」:\ 「QWERTY \」,\ 「部門\」:\ 「sdfghj \」,\」 lastName \「:\」klm \「,\」displayName \「:\」klm,abc(zxa2)\「,\」containerID \「:\」456 \「,\」containerName \「:\」sfdghjjk \「 ,\ 「組ID \」:{\ 「GUID \」:\ 「23454356wert \」,\ 「名稱\」:\ 「qweryugg \」,\ 「標籤\」:\ 「dfgh \」,\ 「$型\」 :\ 「dghdh \」},\ 「$類型\」:\ 「dfghgfh \」}]},{\ 「$ PARAM \」:\ 「dfghj \」,\ 「$值\」:[\「sdfghj \ 「],\」type \「:\」String \「,\」mode \「:\」IN \「}]} } ]。$值[0] .resource」。 我想提取這些記錄並返回它們。

任何人都可以請幫忙嗎?

感謝, 蘭吉特

+1

在'$ .ajax'配置選項中使用'dataType:「json」'時不需要解析。 – Tushar

+0

您應該可以通過執行類似$(response).find(「serializedPayload」)。text()的方式來獲取JSON字符串,然後解析JSON字符串。 –

回答

0

這可能會是一個小試驗和錯誤 - 我有點困惑與JSON的時刻,讓這部分是陣列,並且只是可讀。

當我一直在處理JSON我使用

var json = JSON.parse(JSON.stringify(data)); 

之前得到的分析對象。然後,您可以使用類似json.items的東西訪問鍵/值對。如果可能存在多個項目,我認爲您需要從012KB這樣的正確部分讀取內容,但根據JSON響應佈局的靈活性,您可能需要在其他位置指定索引(使用[index])。

+0

像魅力一樣工作! – user1634358