我正在尝试使用以下格式从json读取数据,但结果未定义
我的JSON如下
{
"1": "A",
"2": "B",
"3": "C",
"4": "D",
"5": "E",
"6": "F",
"key":"pair"
}
我正在解析如下
rawdata = fs.readFileSync('data.json');
data = JSON.parse(rawdata);
console.log(data.1) //returns undefined. I tried parsing 1 to String but resulted same.
console.log(data.key) //returns pair
答案 0 :(得分:2)
如果对象的名称以数字开头,则不能使用点号来访问该对象的属性。
要获取该属性,您需要使用方括号符号:
let o = JSON.parse(`{
"1": "A",
"2": "B",
"3": "C",
"4": "D",
"5": "E",
"6": "F",
"key":"pair"
}`);
console.log(o['1']);
答案 1 :(得分:1)
如果使用dot notation访问值,则属性键必须是有效的标识符
在此代码中,属性必须是有效的JavaScript标识符,即 字母数字字符序列,还包括下划线 (“ _”)和美元符号(“ $”),它们不能以数字开头。对于 例如,object。$ 1有效,而object.1无效。
在这种情况下,您可以使用bracket notation
obj['1']
答案 2 :(得分:0)
您可以尝试使用rawdata = fs.readFileSync('./data.json');
这将告诉脚本data.json
文件与其所在的文件夹。
然后使用.data['1']
来获取值。