Бег по этой цепочке .. и использование ее на лету
{
"oozie": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Failed ProcessHealthMonitor health check 1 times consecutively",
"currstatus": "Warning",
"currstatusclass": "warning"
},
{
"host-id": "2",
"details": "Failed ProcessHealthMonitor health check 1 times consecutively",
"currstatus": "Warning",
"currstatusclass": "warning"
},
{
"host-id": "4",
"details": "Failed ProcessHealthMonitor health check 1 times consecutively",
"currstatus": "Warning",
"currstatusclass": "warning"
},
{
"host-id": "5",
"details": "Failed ProcessHealthMonitor health check 1 times consecutively",
"currstatus": "Warning",
"currstatusclass": "warning"
}
],
"status": [
{}
]
},
"single-namenode": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Running Service",
"currstatus": "Running",
"currstatusclass": "success"
}
],
"status": [
{}
]
},
"single-database": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Running Service",
"currstatus": "Running",
"currstatusclass": "success"
}
],
"status": [
{}
]
},
"secondarynamenode": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Running Service",
"currstatus": "Running",
"currstatusclass": "success"
}
],
"status": [
{}
]
},
"datanode": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Failed HttpHealthMonitor health check 2 times consecutively",
"currstatus": "Warning",
"currstatusclass": "warning"
}
],
"status": [
{}
]
},
"web": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Setting Master IP",
"currstatus": "Dead",
"currstatusclass": "error"
}
],
"status": [
{}
]
},
"tasktracker": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Running Service",
"currstatus": "Running",
"currstatusclass": "success"
}
],
"status": [
{}
]
},
"jobtracker": {
"admin": {},
"hosts-list": [
"1"
],
"hostsinfo": [
{
"host-id": "1",
"details": "Running Master Service",
"currstatus": "Running",
"currstatusclass": "success"
}
],
"status": [
{}
]
}
}
У меня есть строка, аналогичная приведенной выше, которая меняется довольно часто. Используя Jquery, я хочу иметь возможность сортировать эту строку на лету по-разному. Один из примеров: я хочу перечислить все службы, относящиеся к одному хосту. Или еще я хочу перечислить все услуги по типу услуги.
В настоящее время эта строка поддерживает концепцию типа сервиса. Тем не менее, я не могу изменить вывод на мои прихоти, поэтому мне приходится работать с тем, что я получил. Тем не менее, что является лучшим способом сортировки этой строки или объекта, который я должен сказать. Чтобы я мог показать блок, в котором были бы все службы на одном конкретном хосте?
Я пытался сделать это сам в течение пары дней, и я ничего не получил, я просто думаю, что мне нужен свежий взгляд на это, чтобы дать мне идеи, потому что направления, по которым я бегу, кажутся мне дорогой. .
Я пытался each()
в jquery, где я вкладываю по несколько человек в некоторых испытаниях, чтобы делать то, что я хочу, но опять-таки я терплю неудачу.
EDIT
Я решил, что лучше просто перестроить объект, основываясь на информации, которая мне нужна из оригинала. Однако я застреваю в сборе этой информации. В основном, я хочу, чтобы hostsinfo и имя основного объекта представляли информацию о хостах.
поэтому я бы хотел вернуться:
oozie = hostid: 1, подробности: .., currstatus: .., currstatusclass: ..
oozie = hostid: 2, подробности: .., currstatus: .., currstatusclass: ..
oozie = hostid: 3, подробности: .., currstatus: .., currstatusclass: ..
(просто представьте 3 строки в формате объекта)
Моя последняя неудачная попытка. Я занимаюсь этим уже несколько дней, и я начинаю сходить с ума.
$('.refreshAllb').click(function() {
var outputCon = '';
$.getJSON('services.json', function(data) {
$('#master_service_container').empty();
$.each(data, function(i, object){
$.each(object, function(property, value){
if(property == "hostsinfo")
{
$.each(value, function(propertyX, valueX){
outputCon += propertyX[valueX] +'<br>';
});
}
});
});
$('#master_service_container').html(outputCon);
});
});