我有大量的文本,数据嵌套在项目中,以
开头{"sid"
以
结束}]},
我需要在文本中搜索这些项目,将每个项目追加到一行,以及每个后续语句,如
"date_start_session":14644,
应该成为仅显示
的td14644
在适当的栏目中。
我需要有关将文本分隔成行和列的代码的帮助。 谢谢
回复的一个例子如下
{"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 :(得分: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");
}
答案 1 :(得分:1)
我能够使用这个小提琴解决问题:https://jsfiddle.net/8cLg3d5s/5/
以下是相关代码。您可以看到我们使用$.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]);
});
});
节点。
version: '2'
services:
web:
build: .
environment:
RAILS_ENV: 'production'