2016-05-12 3 views
0

У меня есть большое количество текста, данных, вложенных в пунктах, которые начинаются сПоиск текстовый файл и добавить в таблицу

{"sid" 

и заканчиваются

}]}, 

мне нужно искать текст для этих элементов, добавлять каждый элемент в строке, и каждое следующее заявление, как

"date_start_session":14644, 

должен стать тд, показывая только

14644 

в соответствующей колонке.

Мне нужна помощь с кодом для разделения текста на строки и столбцы. Спасибо

https://jsfiddle.net/8cLg3d5s/2/

Пример ответа следует

{"response":{"sessions":[{"sid":132312321,"wid":123213213,"date_start_session":123123123,"date_end_session":13213123,"session_duration":213123,"num_pages":11,"uid":132312312,"ip":"214.142.71.134","browser":"chrome","referrer":{"source":"http://www.dsfdsfds.com/affiliates.aspx"},"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586","new_visitor":true,"starred":false,"country":"United States","landing_page":"www.dsfdsfds.com","exit_page":"www.dsfdsfds.com","device_type":"desktop","display_name":"","sessionlink":"http://www.fdsfssdf.com/dashboard/watchsession/132131/13123?pn=1&accessResourceKey=8safasdf8ads7fds78","tags":[],"pages":[{"rid":3123213,"opened_at":321313,"pagetitle":"this is the page title","url":"www.dsfdsfds.com"},{"rid":41241233,"opened_at":321313,"pagetitle":"this is the page title 2","url":"www.dsfdsfds.com"}]} 
+0

Похоже формат файла JSON. В этом случае вам будет гораздо лучше использовать 'JSON.parse' вместо того, чтобы взломать строку, чтобы найти нужные вам свойства. Полный пример ввода поможет здесь много. –

+0

его около 2500 сид. плохо попробуйте дать полный пример sid, но ответ api начинается с {«response»: {«sessions» – Romtim

+0

обновил исходное сообщение – Romtim

ответ

2

Вы можете анализировать содержимое на объект JSON и перебрать, что:

var temp = JSON.parse($("#container").text()); 

for(var item in temp.response.sessions){ 
    var row = $('<tr>'); 
    $('#theTable tr:first th').each(function(){ 
     var td = "<td>" + temp.response.sessions[item][$(this).text()] + " </td>"; 
     row.append(td); 
    }) 

    $(row[0].outerHTML).appendTo("#theTable"); 
} 

https://jsfiddle.net/8cLg3d5s/6/

+0

Спасибо! Работает хорошо! – Romtim

1

Я был в состоянии решить вопрос, используя эту скрипку: https://jsfiddle.net/8cLg3d5s/5/

Вот код в вопросе. Вы можете видеть, что мы анализируем ваш текст, используя JSON.parse(), и просматриваем сеансы, используя $.each. Для каждой записи сеанса мы перебираем столбцы, извлекаем значение из записи (rec[key]) и добавляем это к новому узлу <td>.

var temp = $("#container").text(), 
    columnNames = ['sid', 'wid', 'date_start_session', 'date_end_session', 
    'session_duration' 
    ]; 

$.each(JSON.parse(temp)['response']['sessions'], function(_row_index, rec) { 
    var $tr = $('<tr>').appendTo($('table tbody')); 
    $.each(columnNames, function(_col_index, key) { 
    $('<td>').appendTo($tr).text(rec[key]); 
    }); 
}); 
+0

Я выбрал другой ответ, но ваш ответ хорошо работает! Благодаря! – Romtim

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