我正在尝试通过 AJAX 远程获取数据。
当我通过 document.write(obj)
查看数据时,我在浏览器上看到以下内容:
[object Object]
这是什么意思?这是一个数组还是数组的数组?
我对 JavaScript 很陌生,我需要查看这个 obj 内部并取出文本。我真的很感激任何见解。
我已经使用了console.log(data)
,并且我看到了这个输出。我需要从此输出中删除 \
。我尝试过:
data.strReplace(/\\/g/,'');
但它不起作用。
数据如下所示:
["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}]
这是我所看到的屏幕截图:
这是控制台输出:
最佳答案
不要使用document.write()
进行调试。
使用console.log()
并检查浏览器的开发人员工具。
[object Object]
是对象显示为字符串的方式:您看到这一点是因为您将数据显示为 HTML。您还会在 alert()
中看到这一点,这是人们错误地用于调试的另一个东西。
控制台将向您显示实际的数据,如下所示:
<小时/>
关于您的新信息:这里有一些问题。
- 反斜杠的存在是有原因的:它们转义形成字符串的引号。您想要删除它们的唯一原因是将字符串转换为对象(我认为您正在尝试这样做。
您已删除最后一个右花括号和最后一个右方括号之间的引号。应该是
["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]"}
这就是你所拥有的:
["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}
(看看语法高亮的区别。)
您的正则表达式有一个拼写错误:它应该是
</\\/g
,而不是/\\/g/
。- 字符串替换方法为
.replace()
,而不是.strReplace()
。 - 即使你解决了所有这些问题,你的“对象”仍然是一个字符串(好吧,从技术上讲,这是 JavaScript 中的一个对象,但你知道我的意思)。要从中获取对象,请使用
JSON.parse()
.
一旦你修复了所有问题,它就可以正常工作了。
关于javascript - 如何从对象中提取内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25249367/