我有一个带有以下示例条目的dhcp租约文件:
lease 172.16.20.11 { 开始4 2014/10/09 18:33:57; 结束4 2014/10/09 18:43:57; cltt 4 2014/10/09 18:33:57; 约束状态活跃; 下一个绑定状态免费; 倒带绑定状态自由; 硬件以太网XX:XX:XX:XX:XX:XX; 客户端主机名"电话&#34 ;; }
我正在尝试找到一种将信息转换为JSON的方法,以便我可以在Dojo中使用。
我希望输出像
{"leases": ["address":"172.16.20.11", "starts":"2014/10/09 18:33:57", "ends":"2014/10/09 18:43:57","
client-hostname":"phone"]}
有办法做到这一点吗?
谢谢, 蒂姆T
答案 0 :(得分:1)
var str = 'lease 172.16.20.11 { starts 4 2014/10/09 18:33:57; ends 4 2014/10/09 18:43:57; cltt 4 2014/10/09 18:33:57; binding state active; next binding state free; rewind binding state free; hardware ethernet XX:XX:XX:XX:XX:XX; client-hostname "phone"; }';
var res = str.split(/[\s;]+/); // regex match spaces and semicolons
// Create your leases array with a lease object from the parsed string
var leases = {leases:[{
address: res[1],
starts: res[5] + " " + res[6],
ends: res[9] + res[10],
client_hostname: res[30].split('"')[1]
}]};
var json = JSON.stringify(leases); //convert the array of leases to json string
[编辑]客户端主机名必须是client_hostname,因为名称限制变量
[EDIT]将租约更改为具有数组属性的对象,以更接近地匹配您想要的输出
[EDIT]从“phone”解析了client_hostname
的电话