2015-02-04 2 views
-1

У меня есть файл DHCP Lease со следующим примером записи:Как разобрать текст в объект JSON?

аренды 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; активное состояние связи; следующее обязательное государство бесплатно; свободное перевязочное состояние; аппаратный ethernet XX: XX: XX: XX: XX: XX; client-hostname "phone"; }

Я пытаюсь найти способ преобразования информации в 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"]} 

Есть ли способ сделать это?

Благодаря, Tim T

+0

Не легко ... Разбираем каждую строку? – tymeJV

ответ

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 

[EDIT], клиент-имя хоста должно быть client_hostname из переменных ограничений имен

[EDIT], изменил аренды, чтобы быть объектом с свойством массива более тесно соответствовать вашему желанию выход

[EDIT] проанализирован телефон от «телефон» для client_hostname

+0

Удивительный! работает отлично. – TimmyT

+0

McCallbear, у меня есть новая проблема. Он отлично работает с одной записью, но как я могу перебирать файлы с несколькими адресами dhcp? – TimmyT

Смежные вопросы