1

我编写了以下 JavaScript 函数(较大“类”的一部分)以帮助确保使用该对象的任何人都将属性值存储在“值”属性中。

function _updateAttributes(attribute, value) {
    _attributes[attribute] = { values: { value: value }};
}

它适用于平面结构,但当我开始尝试将它用于子属性时就崩溃了。

运行以下代码后:

myEntity.updateAttribute('name', 'Frankenstein');
myEntity.updateAttribute('name.source', 'John Doe');

我想要以下结构:

{
    "attributes": {
        "name": {
            "values": {
                "value": "Frankenstein"
            },
            "source": {
                "values": {
                    "value": "JohnDoe"
                }
            }
        }
    }
}

相反,它是这样出来的:

{
    "attributes": {
        "name": {
            "values": {
                "value": "Frankenstein"
            }
        },
        "name.source": {
            "values": {
                "value": "JohnDoe"
            }
        }
    }
}

是否有任何干净的方法来编写这个 JavaScript,或者我会面临拆分字符串并手动构建结构的问题?

注意:我意识到即使是首选结构也有点奇怪,但是我映射到的 Java 对象需要这种格式,所以我在这里没有任何选择。

4

1 回答 1

1

您必须解析字符串(parse有点强,只是一个split('.')带循环的字符串)。

但坦率地说,更清洁的方法就是:

myEntity.name = {values: 'Frankenstein'};
myEntity.name.source = {values: 'John Doe'};
于 2013-02-18T18:40:04.393 回答