我在从响应字符串中获取变量时遇到问题。我的回答是这样的:
responseText = {'page':'2','endOfPage':'yes','content':'abc'}
alert(responseText.page);
返回undefined, 谁能建议怎么做?
答案 0 :(得分:6)
您的问题是您的responseText实际上是一个字符串(responseText = "{'page':'2','endOfPage':'yes','content':'abc'}";
)。您首先必须解析它以创建一个对象,但这会失败,因为您使用的单引号是无效的JSON - 您需要使用双引号来解决问题:
var json= "{ \"page\": 2, \"endOfPage\": \"yes\", \"content\": \"abc\" }";
var obj = JSON.parse(json);
alert(obj.page);
如果您无法更改JSON生成器实现以返回带双引号的响应,请尝试将每个引号替换为双引号,如下所示:
var invalidJson = "{'page':'2','endOfPage':'yes','content':'abc'}";
validJson= invalidJson.replace(/\'/g, "\"");
var obj = JSON.parse(validJson);
alert(obj.page);
答案 1 :(得分:-1)
responseText ='{“page”:“2”,“endOfPage”:“yes”,“content”:“abc”}';
responseText = jQuery.parseJSON(responseText);
警报(responseText.endOfPage);
responseText = '{"page":"2","endOfPage":"yes","content":"abc"}'; alert(JSON.parse(responseText).page);
在一些现代浏览器中支持将JSON解析为本机js对象
答案 2 :(得分:-3)
您需要使用eval函数将json转换为object:
responseText = {'page':'2','endOfPage':'yes','content':'abc'}
var responseObject = eval(responseText);
alert(responseObject.page);