【问题标题】:How do you extract content out of object?如何从对象中提取内容?
【发布时间】:2014-08-11 17:48:06
【问题描述】:

我正在尝试通过 AJAX 远程获取数据。

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

[object Object]

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

我对 JavaScript 很陌生,我需要查看这个 obj 并从中取出文本。如果有任何见解,我将不胜感激。

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

data.strReplace(/\\/g/,'');

它没有用。

数据如下:

["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}]

这是我看到的截图:

这是控制台输出:

【问题讨论】:

  • 这是一个javascript对象的字符串表示。它相当于说obj.toString()
  • 问题 #1:document.write -- 如果您将其记录到控制台,您将获得更大的成功,毕竟,无论如何它都是为开发人员准备的。
  • 使用console.log(obj)alert(JSON.stringify(obj, null, 4))
  • strReplace 不是真正的方法。

标签: javascript string object console


【解决方案1】:

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

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

[object Object] 是对象显示为字符串的方式:您看到这种情况是因为您将数据显示为 HTML。您还会在 alert() 中看到这一点,这是人们错误地用于调试的另一件事。

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


关于您的新信息:这里有一些问题。

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

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]"}
    

    这就是你所拥有的:

    ["{\"name\":\"ServerA\",\"data\":[[1406284185600,0.092],[1406285985600,0.092]]}
    

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

  3. 您的正则表达式有错字:应该是/\\/g,而不是/\\/g/

  4. 字符串替换方法是.replace(),而不是.strReplace()
  5. 即使您修复了所有这些问题,您的“对象”仍然是一个字符串(嗯,从技术上讲,它是 JavaScript 中的一个对象,但您知道我的意思)。要从中获取对象,请使用 JSON.parse()

一旦你修复了所有,它就可以正常工作了。

Demo

【讨论】:

  • @AstroCB,我刚刚上传了控制台外观的另一张图片。我需要那个对象在 json 中。
  • @user1471980 这是 JSON 格式。您的预期输出是什么?
  • @AstroCB,预期输出需要是这样的:[{"name":"ServerA","data":[[1406284185600,0.092],[1406285985600,0.092],[1406287785600,0.091 ]]}]
  • @user1471980 我很高兴它有帮助。
【解决方案2】:

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

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

var name = person.name;
console.log(name);

这将获得创建的人员对象的名称。现在将其调整为您的对象名称以及您要提取的任何信息。正如我所说,firebug 会让事情变得更容易,能够直观地看到对象的结构。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 当我在 chrome 开发工具上编码 console.log(data) 时,我看到这个“{}”,这是什么意思?
    • 表示对象中没有数据但也不为空。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    相关资源
    最近更新 更多