Javascript到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

我们正在将一个值从javascript发送到一个json文件——这是有效的;但是,该值被放在json文件的错误位置

[{“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
或检查来验证
数据的准确值是否正确。