我编写了以下JavaScript函数(较大的“类”的一部分),以帮助确保任何使用对象的人在“values”属性中存储属性值。
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对象需要这种格式,所以我这里没有任何选项。
答案 0 :(得分:1)
你必须解析字符串(parse
有点强,只有一个split('.')
有一个循环)。
但坦率地说,更清洁的方式就是:
myEntity.name = {values: 'Frankenstein'};
myEntity.name.source = {values: 'John Doe'};