【问题标题】:Why am i getting [object Object] javascript JSON file为什么我得到 [object Object] javascript JSON 文件
【发布时间】:2020-10-14 04:14:06
【问题描述】:

Console.log(values) 返回“[object Object]”而不是记录数组。

这是我的代码:

let values = {
    "coins": 0,
    "griffinFeathers": 0,
    "souvenir": 0,
    "cogs": 0,
    "cats": 0,
    "golems": 0,
    "champions": 0,
    "minotaurs": 0,
    "inquisitors": 0
}

JSON.stringify(FileLib.write("MinotaurLoot", "values.json", values));
function thing() {
    fileThing = JSON.stringify(FileLib.read("MinotaurLoot", "values.json"));
    if (griffin_thing_idk) fileThing.griffin++;    
}

console.log(values) // [object Object]

【问题讨论】:

  • 这样做console.log(JSON.stringify(values))
  • 你不应该在写作时对内容进行字符串化吗? FileLib.write("MinotaurLoot", "values.json",JSON.stringify(values))

标签: javascript json file


【解决方案1】:

看着:

JSON.stringify(FileLib.write("MinotaurLoot", "values.json", values));

JSON.stringify() 应该 either 被删除,因为您没有将返回的 stringified 版本的 Object 存储在任何地方执行以下操作:

const stringifiedValues = 
    JSON.stringify(FileLib.write("MinotaurLoot", "values.json", values));

//Now you should be able to console.log without getting [object Object]
console.log(stringifiedValues);

现在,您得到 [object Object] 的原因是 JavaScript 的默认实现 console.log() 不能优雅地处理 JavaScript 对象,因为它们是比字符串或数字等原语“更复杂”的数据结构.

正如@coderpc 在对您的问题的评论中指出的那样,您可以使用JSON.stringify() 方法访问对象的内部内容,然后再将其包装在console.log 语句中。

让我们知道它是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 2023-02-15
    • 1970-01-01
    相关资源
    最近更新 更多