我正在构建一个将HTML转换为LESS的工具,并且需要知道如何将JSON对象正确地嵌套在另一个中。
我目前从textarea获取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!"]
}]
}
然后我想把它变成一个LESS样式格式的JSON对象(然后我将其美化为LESS结构),例如下面的例子:
{
".foo" : {
".bar" : {
}
}
}
我目前只能将其输出为:
{
".foo" : {},
".bar" : {}
}
这显然没有正确嵌套,但我无法弄清楚我做错了什么。
以下是我当前代码的jsfiddle ...感谢您提前花时间和精力:)
答案 0 :(得分:0)
您正在JSONtoLESS()方法中覆盖该对象。
您正在为JSON对象中的每个键运行循环,但您每次都在检查属性并更新值。
以下是您要覆盖的地方:
if ( !obj.attributes ) { //node has type and no attributes less[obj.type] = {}