2
我使用jQuery來調用一個遺留系統返回以下響應Ajax響應:JavaScript的jQuery中
<script type="text/javascript">
var responseObj = {
success: ('0'=='0'),
cfgInfo: {
deletedId: ''
},
data: {
id:"9470",devicePIFrom:"10.10.10.34",devicePIFromAlias:"10.10.10.34",
deviceCommunityRW:"",deviceCommunityRO:"H1ghL!ght",devicePIUseProxy:"1",
devicePITo:"10.10.10.10",devicePIToAlias:"Fake local server",
devicePISrcIP:"6.6.6.6",piStyle:"ICMPPing",SLAdelay:"100",
devicePIToPort:"0",piWanted:"1",piAutoClasses:"",piNocDisabled:"",
piCtrlPacketSize:'50',piTestInterval:'0',piProbeInterval:'',piProbeCount:'',
piMOSCodec:'0',pimosSLA:'3.5',piSLAPacketLoss:'0.05',piSLAJitter:'20'
},
errors: [
]
}
</script>
我的jQuery看起來是這樣的:
$.ajax({
type: "GET",
url: requestString,
dataType: 'script',
success: function(data){
.....do stuff......
}
});
?我怎樣才能在responseObj因爲我無法更改遺留系統的響應格式?
它看起來像你必須編寫自己的解析器,因爲它看起來像JSON,但成功:('0'=='0')'不是有效的json ans,所以'cfgInfo:'因爲「(應該是這樣的:''cfgInfo」'。有關json的更多信息請看這裏http://en.wikipedia.org/wiki/JSON – ITroubs 2011-04-05 10:34:07
這裏是我發現的一個解析器:http:// www。 thespanner.co.uk/2009/01/22/jsreg-javascript-parser/你也可以編寫你自己的或者只是搜索一個開源的解析器,你也可以使用ANTLR http://www.antlr.org/wiki/ display/ANTLR3/ANTLR3JavaScriptTarget但是你必須知道如何編寫一個EBNF語法。 – ITroubs 2011-04-05 10:37:04
這個代碼應該可以工作,如果響應沒有''',jQuery會execute和'responseObj'會變成全局的。 – 2011-04-05 15:52:14