Javascript 为什么我不能将对变量的引用作为JSON属性的键传递?

Javascript 为什么我不能将对变量的引用作为JSON属性的键传递?,javascript,json,node.js,Javascript,Json,Node.js,当我试图将对POST请求正文的一部分的引用作为对象文本的键传递时,我试图找出我的node.js应用程序不喜欢它的原因。考虑以下事项: //////////CODE SNIPPET //problem section of object "sort": [ { req.body.sortField: { "order": req.body.direction, "unmapped_type": "boolean"

当我试图将对POST请求正文的一部分的引用作为对象文本的键传递时,我试图找出我的node.js应用程序不喜欢它的原因。考虑以下事项:

//////////CODE SNIPPET

//problem section of object
"sort": [
    {
        req.body.sortField: {
            "order": req.body.direction,
            "unmapped_type": "boolean"
        }
    }
]

//////////REQUEST BODY

{
    "fromDate": 1468213200000,
    "toDate": 1468219300000,
    "sortField": "#timestamp_milli",
    "direction": "desc",
    "columns": [
        "*"
    ] 
}
我可以通过引用将direction属性作为值传递,没有问题,但是当我尝试将sort属性作为键传递时,在运行应用程序时会出现错误:

req.body.sort: {
   ^
SyntaxError: Unexpected token .
我的猜测是,我不能将引用作为对象文本中的键传递。如果这是真的,为什么?这有什么办法吗?如果这不是真的,我在这里错误地理解了什么

谢谢你抽出时间

编辑:JSON和JavaScript对象文本之间的澄清。还有,我回答。谢谢大家

试试看

"sort": [
    {
        [req.body.sortField]: {
            "order": req.body.direction,
            "unmapped_type": "boolean"
        }
    }
]
编辑:对不起,我错过了那部分

试试看

"sort": [
    {
        [req.body.sortField]: {
            "order": req.body.direction,
            "unmapped_type": "boolean"
        }
    }
]

编辑:很抱歉,我错过了这一部分

,因为ES6可以提供动态键(这正是您想要的)。需要方括号的语法:

"sort": [
    {
        [req.body.sortField]: {
            "order": req.body.direction,
            "unmapped_type": "boolean"
        }
    }
]

请注意,这不是JSON,而是一个JavaScript对象文本。

因为ES6可以有动态键(这似乎是您正在寻找的)。需要方括号的语法:

"sort": [
    {
        [req.body.sortField]: {
            "order": req.body.direction,
            "unmapped_type": "boolean"
        }
    }
]

请注意,这不是JSON,而是一个JavaScript对象文本。

我假设您谈论的是对象文本,而不是JSON?JSON!==JavaScript。预期的结果是什么?我假设您讨论的是对象文本,而不是JSON?JSON!==JavaScript。预期结果是什么?我打赌他想要这个值,因为keyIt需要一些澄清,特别是关于他们的代码中没有JSON(但是JS对象文本)我打赌他想要这个值,因为keyIt需要一些澄清,特别是关于他们的代码中没有JSON(但是JS对象文本)修复了它,感谢您对JSON和JavaScript对象文字之间的澄清。WebStorm在使用方括号时告诉我“不支持计算属性”,但它仍然有效。奇怪。这就解决了这个问题,感谢您对JSON和JavaScript对象文字之间的澄清。WebStorm在使用方括号时告诉我“不支持计算属性”,但它仍然有效。奇怪的