繁体   English   中英

如何从javascript中的json响应中获取变量?

[英]How to get variable from the json response in javascript?

我在从响应字符串中获取变量时遇到问题。 我的回答是这样的:

responseText = {'page':'2','endOfPage':'yes','content':'abc'}

alert(responseText.page);

正在返回undefined,任何人都可以建议怎么做?

你的问题是你的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);
  • 如果您使用的是jQuery,可以使用:

responseText ='{“page”:“2”,“endOfPage”:“yes”,“content”:“abc”}';
responseText = jQuery.parseJSON(responseText);
警报(responseText.endOfPage);

  • 在Javascript中:
 responseText = '{"page":"2","endOfPage":"yes","content":"abc"}'; alert(JSON.parse(responseText).page); 

一些现代浏览器支持将JSON解析为本机js对象

您需要使用eval函数将json转换为object:

responseText = {'page':'2','endOfPage':'yes','content':'abc'}​​​​
var responseObject = eval(responseText);

alert(responseObject.page);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM