このようなASP.NET Webサービスと通信するjquery関数があります
$(document).ready(function() {
$.support.cors = true;
$.ajax({
type: "GET",
url: "http://www.webservice.com/blahblah.asmx/blahb123",
data: "tnWsGuid=TEST1",
dataType: "text",
success: function(data, status, jqxhr) {
xmlString = data;
alert(xmlString);
},
error: function (request, status, error) {
alert(status);
}
});
});
アラート表示はこれ:
<?xml version="1.0" encoding = "utf-8"?>
<string xmlns = "http://Walkthrough/XmlWebServices/">
{"approverName":"","emailAddress":"","companyName":"ABC","address":{"streetAddress1":"12 BlahBlah","streetAddress2":"","state":"ON","zipCode":"","country":"SO","phoneNumber":""},"tabledata:"[{"vendorPart":"AAAAA","partDescription":"N/A","price":"0.00","quantity":"28"},{"vendorPart":"BBBBBBB","partDescription":"N/A","price":"0.00","quantity":"3"},{"vendorPart":"CCCCCC","partDescription":"N/A","price":"0.00","quantity":"25"}]}
</string>
私のdataTypeはテキストになりました。JSON を解析する方法はわかっていますが、XML エンベロープに埋め込まれた JSON に何らかの方法でアクセスし、それを JSON オブジェクトに変換して、JQuery を使用して解析できるようにする必要があります。
$.ajax 関数で試したことは次のとおりです。
success: function(data, status, jqxhr) {
xmlString = data;
var jsondata = jQuery.parseJSON(xmlString.substr(xmlString.indexOf('{')));
alert(jsondata);
}
しかし、IEデバッガーでは次のように見える無効な文字のエラーが返されました
xml エンベロープ内のデータにアクセスして JSON オブジェクトに変換し、JSON として解析できるようにする方法はありますか? 私には Web サービスを変更する機能がないため、これはすべて Web ページ内で行う必要があります。