Javascript到JSON拼接位置
我们正在将一个值从javascript发送到一个json文件——这是有效的;但是,该值被放在json文件的错误位置Javascript到JSON拼接位置,javascript,node.js,json,push,splice,Javascript,Node.js,Json,Push,Splice,我们正在将一个值从javascript发送到一个json文件——这是有效的;但是,该值被放在json文件的错误位置 [{“sphereposition”:[]}] 当我们尝试时,它要么被添加到整个“球体位置”部分之前,要么被添加到整个“球体位置”部分之后——不过,我们希望在“spehereposition”的[]范围内发送数字 这是我们的代码: app.post('/store-data', async (req, res) => { const xcoord = req.body
[{“sphereposition”:[]}]
当我们尝试时,它要么被添加到整个“球体位置”部分之前,要么被添加到整个“球体位置”部分之后——不过,我们希望在“spehereposition”的[]范围内发送数字
这是我们的代码:
app.post('/store-data', async (req, res) => {
const xcoord = req.body
var fs = require('fs')
fs.readFile('./answers.json', function ( err, data ) {
if (err) throw err;
var json = JSON.parse( data );
json.push( 0, 0, xcoord );
json = JSON.stringify( json );
fs.writeFile( './answers.json', json, function( err ) {
if (err) throw err;
return json;
} );
} );
})
谢谢你的帮助 要获取嵌套数组中插入的值,您应该寻址该属性:
json[0].sphereposition.push( 0, 0, xcoord );
// ^^^^^^^^^^^^^^^^^^
附带说明:不要调用该变量json
,因为它实际上是一个数组对象,而不是一个json字符串。当您用stringized版本覆盖它时,它就会变成一个JSON字符串。但更好的做法是使用单独的变量:
var arr = JSON.parse( data );
arr[0].sphereposition.push( 0, 0, xcoord );
var json = JSON.stringify( arr );
我们希望在“spehereposition”的[]内发送号码-然后需要使用
json[0].sphereposition.push(0,0,xcoord)代码>非常感谢您的帮助,我们尝试过,但出现了以下错误:json[0]。sphereposition.push(0,0,xcoord);^TypeError:无法读取未定义的属性“sphereposition”,原因是什么?这意味着您的json
变量不是数组,因此它不是问题中描述的[{“sphereposition”:[]}]
。在发生此错误之前,使用console.log
或检查来验证数据的准确值是否正确。