设置 json 属性 取决于 child 属性

set json property depending on child property

我正在创建这个 JSON object

 {
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "generic",
            "image_aspect_ratio": "square"
            "elements": [
                new CreateBallon(results[rand])
            ]
        }
    }
}

我只想在存在 elements[0].someProp 时设置 image_aspect_ratio。 我该怎么做?

让我们弄清楚 JSON 是什么。它是数据的文本符号。如果您对涉及 Javascript 代码的对象执行任何操作,请不要将其称为 JSON 因此,您所谈论的对象不是 JSON 而是 JavaScript通过对象文字符号创建的对象。

现在回答您的问题,在完全初始化对象之前,您不能引用 this 对象。所以你可以做的是用一些默认值初始化你的对象,然后你应该能够根据同一对象的属性编辑任何 属性 。像

 var obj = {"property1" : "X", "property2" : ""};

现在您可以像

一样更新您的对象
  obj.property2 = obj.property1 =='yourCondition' ? 'NewValue' : obj.property2