从解析的JSON对象中获取元素
问题描述:
我似乎无法抽出解析的JSON对象的元素。从解析的JSON对象中获取元素
var thisObj = JSON.parse(req.responseText);
console.log(JSON.parse(req.responseText));
这里是被记录:
Object
data: "{"sVar":"sdf","nVar":"","dVar":"","cVar":"#000000"}"
我曾尝试以下方法
thisObj.data[sVar]
thisObj.data.sVar
他们都产生undefined
。它似乎不在数组中。 有什么建议吗?
CONSOLE.LOG(req.responseText)...
{
"args": {},
"data": "{\"sVar\":\"asdf\",\"nVar\":\"\",\"dVar\":\"\",\"cVar\":\"#000000\"}",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Content-Length": "52",
"Content-Type": "application/json",
"Host": "httpbin.org",
"Origin": "http://localhost:63342",
"Referer": "http://localhost:63342/AssignmentAJAX/weather.html",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36"
},
"json": {
"cVar": "#000000",
"dVar": "",
"nVar": "",
"sVar": "asdf"
},
"origin": "65.128.122.251",
"url": "http://httpbin.org/post"
}
答
的thisObj
的data
属性是表示数据对象的字符串。你也应该解析它。例如:
var response = JSON.parse(req.responseText);
var data = JSON.parse(response.data);
console.log(data.sVar);
+0
是的,当我这样做的时候得到了双重解析,就像Felix Kling提到的那样;然而,这个解析它的方法有两次工作。我后来回去修复了我的请求到服务器的根本问题。谢谢! – McMurroughDan
您能告诉我们明确的回答吗?它几乎看起来像'.data'是一个字符串 – Bergi
是的。控制台日志请求和req.responseText请发布。 – millerbr
'data'显然是一个字符串。你需要先解析它。更好的是:将服务器端代码修复为节点,对您的数据进行双重编码。 –