Я создаю инструмент для преобразования HTML в LESS и должен знать, как правильно вложить объект JSON внутри другого.
В настоящее время я беру HTML-текст из текстового поля, например:
<p class="foo">Hello <span class="bar">World!</span></p>
Поверните это в объект DOM, а затем упростите объект DOM примерно так:
{
"type": "p",
"attributes" : { "class" : "foo" },
"content": ["Hello ", {
"type": "span",
"attributes" : { "class" : "bar"},
"content" : ["World!"]
}]
}
Который я тогда хочу превратить в объект JSON в формате стиля LESS (который я затем придаю структуре LESS), пример ниже:
{
".foo" : {
".bar" : {
}
}
}
В настоящее время я могу выводить это как:
{
".foo" : {},
".bar" : {}
}
Который явно не вложен правильно, но я не могу понять, что я делаю неправильно.
Здесь jsfiddle с моим текущим кодом... спасибо за ваше время и усилия заранее :)
Вы переписываете объект в методе JSONtoLESS().
Вы запускаете цикл для каждого ключа в объекте JSON, но каждый раз проверяете атрибуты и обновляете значение.
Ниже находится место, где вы переписываете:
if ( !obj.attributes ) { //node has type and no attributes less[obj.type] = {}