我需要定义一个布局配置文件,如下所示
{
'row' : {
'height' : 20%,
'content' : 'BLOCK_MENU'
},
'row' : {
'col': {
'width' : 30%,
'content': 'BLOCK_SIDEBAR'
},
'col' : {
'width' : 70%,
'content' : 'BLOCK_MAIN_CONENT'
}
}
}
但这既不是有效的javascript对象,也不是json。我需要将它转换为json或js对象。由于此配置文件是由用户编写的,因此无法使格式过于严格和复杂。如果不使用LEX或野牛,有没有办法做到这一点?我在服务器端使用nodejs。
答案 0 :(得分:2)
如果您需要重复的密钥,可能根本不需要密钥。您的对象可以是行对象的数组,每行可以有一个列对象数组。像这样:
[
{
"height" : "20%",
"content" : "BLOCK_MENU"
},
{
"height": "something",
"content": "whatever",
"cols": [
{
"width" : "30%",
"content": "BLOCK_SIDEBAR"
},
{
"width" : "70%",
"content" : "BLOCK_MAIN_CONENT"
}
]
}
]
答案 1 :(得分:1)
如何将文件格式更改为:
[
{
"height" : "20%",
"content" : "BLOCK_MENU"
},
{
"cols": [
{
"width" : "30%",
"content": "BLOCK_SIDEBAR"
},
{
"width" : "70%",
"content" : "BLOCK_MAIN_CONENT"
}
]
}
]
外部数组是一个行数组。一行有一个可选的“cols”数组,它是一个列数组。
如果高度和宽度总是百分比,我甚至可以替换百分比值,这样您的代码就不必将字符串转换为数字:
[
{
"height" : 20,
"content" : "BLOCK_MENU"
},
{
"cols": [
{
"width" : 30,
"content": "BLOCK_SIDEBAR"
},
{
"width" : 70,
"content" : "BLOCK_MAIN_CONENT"
}
]
}
]
答案 2 :(得分:0)
{
"row": {
"col": { "width": "70%", "content": "BLOCK_MAIN_CONENT" }
}
}
这将验证为json
在此验证Validate Json
或
{
"row" : {
"col_1": { "width" : "30%", "content": "BLOCK_SIDEBAR" },
"col_2" : { "width" : "70%", "content" : "BLOCK_MAIN_CONENT" }
}
}