Я написал следующую функцию JavaScript (часть более крупного «класса»), чтобы гарантировать, что кто-либо, использующий объекты, сохраняет значения атрибутов в свойстве «values».Доступ к под-свойствам 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, который я сопоставляю с тем, который ожидает этот формат, поэтому у меня нет никаких параметров здесь.
Почему вы считаете разбором строк (то есть расщепление точек), как нечистые? Да, вам придется. – Bergi