如何从对象中提取内容?

use*_*980 0 javascript string console object

我试图通过AJAX远程获取数据.

当我查看数据时document.write(obj),我在浏览器上看到了这个:

[object Object]
Run Code Online (Sandbox Code Playgroud)

这是什么意思?这是数组还是数组?

我是JavaScript的新手,我需要查看这个obj并获取文本.我真的很感激任何见解.

我用过了console.log(data),我看到了这个输出.我需要摆脱\这个输出.我试过了:

data.strReplace(/\\/g/,'');
Run Code Online (Sandbox Code Playgroud)

它不起作用.

数据如下所示:

["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}]
Run Code Online (Sandbox Code Playgroud)

这是我所看到的截图:

我的控制台 这是控制台输出:

在此输入图像描述

Ast*_*oCB 10

不要document.write()用于调试.

使用console.log()并检查浏览器的开发人员工具.

[object Object]是一个对象显示为字符串的方式:您看到的是因为您将数据显示为HTML.你也会看到alert(),这是人们错误地用于调试的另一件事.

控制台将显示实际的数据,如下所示:

JavaScript对象的控制台视图


关于你的新信息:这里有一些问题.

  1. 反斜杠有一个原因:它们逃避形成字符串的引号.你想要删除它们的唯一原因是将字符串转换为一个对象(这是我假设你正在尝试做的事情.
  2. 您已删除最后一个结束大括号和最后一个结束括号之间的引号.它应该是

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]"}
    
    Run Code Online (Sandbox Code Playgroud)

    这就是你拥有的:

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}
    
    Run Code Online (Sandbox Code Playgroud)

    (看看语法高亮的区别.)

  3. 你的正则表达式有一个拼写错误:它应该是/\\/g,而不是/\\/g/.

  4. 字符串替换方法.replace()不是.strReplace().
  5. 即使你解决了所有问题,你的"对象"仍然是一个字符串(从技术上讲,这是JavaScript中的一个对象,但你知道我的意思).要从中获取对象,请使用JSON.parse().

一旦你解决了所有这些,它就可以正常工作.

演示