2016-08-05 48 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