Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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 如何为json对象中未定义的项赋值(添加)_Javascript_Json_Object - Fatal编程技术网

Javascript 如何为json对象中未定义的项赋值(添加)

Javascript 如何为json对象中未定义的项赋值(添加),javascript,json,object,Javascript,Json,Object,我有一个外部json文件,并将其解析为本地对象, 目前我知道我无法将值推入对象,因此我想为它们指定一个值这是我的代码: //I parse my JSON into object and name it data var data = { ... } // I use this object as a database so I don't list it all out var name = "title"; var content = "hello guys"; data[name] =

我有一个外部json文件,并将其解析为本地对象, 目前我知道我无法将值推入对象,因此我想为它们指定一个值这是我的代码:

//I parse my JSON into object and name it data
var data = {
  ...
}
// I use this object as a database so I don't list it all out
var name = "title";
var content = "hello guys";
data[name] = content;
// I wish after this script the object will have one more item like
// {
//  ...
//  "title": "hello guys",
//  ...
//}
但是当我运行脚本时,vscode的控制台显示以下错误

TypeError: Cannot set property 'title' of undefined
若你们能给未定义的对象赋值,你们怎么能把项目添加到对象中

但如果有任何方法可以让我为未定义的项赋值,我会非常高兴的

这是完整的代码,如果你需要的话
当前
data=undefined
并且您正试图访问
undefined
中的一个键,这就是为什么会出现错误的原因,如果数据未定义,您需要为其分配一个空对象。您可以这样做:

var data = data || {};
var name = "title";
var content = "hello guys";
data[name] = content;

数据可能没有名为“post”的键。 试试这个:

data.post = data.post || {};
data.post[name] = content;
编辑: 我知道这很古老,但也许它会帮助别人。
此处说明readFileSync返回字符串而不是数据结构

对不起,我没有说清楚,我已经有一个对象,并指定为变量数据,然后我想添加一个项目,但对象不能使用推送,所以我想我使用赋值来添加一个新项目,但失败如果数据已经是一个对象,那么您不应该得到该错误。错误清楚地表明您正在尝试设置undefined的属性'title',这意味着数据未定义。然而,
var data=data | |{}
将使用{}初始化数据如果它是未定义的。Yeap
数据。title
是未定义的通常如果它是一个数组,我们将使用push创建项,但这里是object,我想创建一个名为title的新项,带有值内容。错误是正确的
数据。title
是未定义的,这是b/c我想创建它
类型错误:无法设置未定义的属性“title”
表示您正在为未定义的内容设置名为title的属性。这意味着数据是未定义的。好吧,当我将值设置为null时,它会工作,当我更改回变量
content
时,它仍然工作,但现在我不知道哪里出错了?您将字符串解析为JSON,但如果您已经将其作为JSON导入并按原样使用它。在屏幕截图中,您正在执行
data.post[name]=内容
在您所做的问题中,
数据[name]=内容
请使代码片段与您想要做的内容一致。@Dij这与我想在
post
下发布的位置无关,但在这里,我简化了问题,因此我将位置移动到了最上面的位置,正如我所说的。你不必解析!require会帮你做的(require(·./yourjsonfile.json·))@taha如果我做了,我没有解析它在哪里?我正在开发nodejs,如果您不介意的话,我们通常使用readfile函数,这里是控制台和代码的快照
data.post = data.post || {};
data.post[name] = content;