Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从对象中提取内容?_Javascript_String_Object_Console - Fatal编程技术网

Javascript 如何从对象中提取内容?

Javascript 如何从对象中提取内容?,javascript,string,object,console,Javascript,String,Object,Console,我试图通过AJAX远程获取数据 当我通过document.write(obj)查看数据时,我在浏览器上看到: [object Object] 这是什么意思?这是一个数组还是数组的数组 我对JavaScript非常陌生,我需要查看这个obj内部并从中提取文本。我真的很感激你的洞察力 我使用了console.log(data),我看到了这个输出。我需要从这个输出中去掉\。我试过: data.strReplace(/\\/g/,''); 但它没有起作用 数据如下所示: ["{\"name\":\"

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

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

[object Object]
这是什么意思?这是一个数组还是数组的数组

我对JavaScript非常陌生,我需要查看这个obj内部并从中提取文本。我真的很感激你的洞察力

我使用了
console.log(data)
,我看到了这个输出。我需要从这个输出中去掉
\
。我试过:

data.strReplace(/\\/g/,'');
但它没有起作用

数据如下所示:

["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}]
var name = person.name;
console.log(name);
下面是我看到的屏幕截图:

这是控制台输出:


Chrome开发工具或FireFox FireBug是你最好的朋友。打开它,然后使用
console.log(data)
在工具的控制台中查看它

不要使用
document.write()
进行调试

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

[object object]
是对象显示为字符串的方式:您之所以看到它,是因为您将数据显示为HTML。您还可以通过
alert()
看到这一点,这是人们错误地用于调试的另一个东西

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

["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}]
var name = person.name;
console.log(name);


关于你的新信息:这里有一些错误

  • 反斜杠的存在是有原因的:它们避开了构成字符串的引号。您想要删除它们的唯一原因是将字符串转换为对象(我假设您正在尝试这样做)
  • 您删除了最后一个右括号和最后一个右括号之间的引号。它应该是

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]"}
    
    这就是你所拥有的:

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}
    
    (查看语法突出显示的差异。)

  • 正则表达式有输入错误:它应该是
    /\\/g
    ,而不是
    /\\/g/

  • 字符串替换方法是,而不是
    .strReplace()
  • 即使你解决了所有这些问题,你的“对象”仍然是一个字符串(从技术上讲,这是JavaScript中的一个对象,但你知道我的意思)
  • 一旦你解决了所有这些问题,它就可以正常工作了


    Firefox有一个名为Firebug的插件。这将允许您展开对象,查看其结构和内容

    对于有关如何提取数据的问题,例如,您可以通过执行以下操作从person对象获取名称:

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}]
    
    var name = person.name;
    console.log(name);
    

    这将获得所创建的person对象的名称。现在将其调整为您的对象名称以及您要提取的信息。正如我所说的firebug将使您更容易直观地看到对象的结构。

    这是javascript对象的字符串表示形式。这相当于obj.toString()问题#1:
    document.write
    ——如果你把它记录到控制台上,你会获得更大的成功,毕竟,它是为开发者准备的。使用
    console.log(obj)
    alert(JSON.stringify(obj,null,4))
    strReplace不是一个真正的方法。当我在dev chrome工具上使用cod console.log(data)时,我看到了这一点“{}”,这是什么意思?这意味着对象中没有数据,但也不是空的。让我们来看看。@AstroCB,我刚刚上传了控制台外观的另一个图像。我需要该对象是json格式的。@user1471980是json格式的。您的预期输出是什么?@AstroCB,预期输出需要如下:[{”name:“ServerA”,“data”:[[1406284185600,0.092],[1406285985600,0.092],[1406287785600,0.091]}]@user1471980我很高兴它有帮助。