2015-05-09 3 views
-2
{ 
"category": [ 
    { 
     "category_id": "1", 
     "category_name": "Editor's Choice ", 
     "cover_url": "http://www.example.com" 
    }, 
    { 
     "category_id": "2", 
     "category_name": "New Releases", 
     "cover_url": "http://www.example.com" 
    } 
], 
"success": 1 

}Javascript: как получить вложенную JSON

Проблема заключается в том, что я выскабливание с nodejs HTML-страницы из моего локального сайта кинотеатра, у меня есть 3 массивов (ar1, ar2, ar3), который cointain названия фильмов, запрограммированные отныне до следующих трех дней.

я использую этот способ получить JSON (это только на один день), то есть «сердце» из функции, где я генерировать массив, который будет strigify тогда:

  var len = titolo1.length; 
      while(j!=len){ 
       obj1={titolo:titolo1[j],locandina:film1[j]}; 
       js[j]=obj1; 
       j++; 
      } 

то в другой точке кода сервера (! из функции) я сделать res.send (JSON.stringify (Js, нулевые, 4))

и это результат:

[ 
{ 
    "titolo": " The Gunman ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/RIBqwqVPwUp6VIWeRZlS-150x214.jpg" 
}, 
{ 
    "titolo": " Doraemon il film ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/doraemon-il-film-le-avventure-di-nobita-e-dei-cinque-esploratori_notizia-2-150x214.jpg" 
}, 
{ 
    "titolo": " Child 44 – Il bambino numero 44 ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/Child-44-trailer-italiano-e-locandina-del-thriller-con-Gary-Oldman-e-Tom-Hardy-2-150x214.jpg" 
}, 
{ 
    "titolo": " Run All Night – Una notte per sopravvivere ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/locandina2-150x214.jpg" 
}, 
{ 
    "titolo": " Ritorno al Marigold Hotel ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/36366-150x214.jpg" 
}, 
{ 
    "titolo": " I 7 nani ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/xHIrTDXTLZF1jBd7CQNf-150x214.jpg" 
}, 
{ 
    "titolo": " Adaline – L’eterna giovinezza ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/adaline-poster-150x214.jpg" 
}, 
{ 
    "titolo": " Avengers: Age of Ultron – 2D ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/ultron.poster-2-150x214.jpg" 
}, 
{ 
    "titolo": " Fast and Furious 7 ", 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/49946-150x214.jpg" 
} 

]

сейчас, я хотел бы, чтобы достичь этого типа JSON:

{ 
"day1": [ 
    { 
     "title": "blablablalbal", 
    }, 
    { 
     "title": "blablablalbal", 
    } 
], 
"day2": [ 
    { 
     "title": "blablablalbal", 
    }, 
    { 
     "title": "blablablalbal", 
    } 
], 
"day3": [ 
    { 
     "title": "blablablalbal", 
    }, 
    { 
     "title": "blablablalbal", 
    } 
] 

}

, как я могу это сделать? Извините за мой английский.

+0

Marco - Я понимаю ваш английский хорошо. Тем не менее, вам нужно привести пример структуры данных, которую вы хотите. Я думаю, вам нужно лишь внести небольшое изменение в свой цикл, чтобы добавить префикс фильма. – Roberto

ответ

1

Marco -

Если вы всегда будете иметь 3 массивов, простой ответ:

var films = {day1: ar1, day2: ar2, day3: ar3}; 
res.send(JSON.stringify(films, null, 4)); 

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

Если это не то, что вы хотите, пожалуйста, предоставьте дополнительную информацию.

Пример:

<html> 
 
    <body> 
 
<b>Calendario Eventi</b><br> 
 
    <textarea id="stdout" style="width:90%;height:20em;padding:1em;border:1px black solid;background-color:aliceblue;"></textarea> 
 
    
 

 

 
<script type="text/javascript"> 
 
    
 
    function main() { 
 
    var films = joinData([ ar1, ar2, ar3 ]); 
 
    document.getElementById('stdout').value = JSON.stringify(films, null, ' '); 
 
    } 
 
    
 
function joinData(data) { 
 
    var i, obj={}; 
 
    for(i=0; i<data.length; i++) { 
 
    obj["day" + (1 + i) ] = data[i]; 
 
    } 
 
    return obj; 
 
} 
 
    
 
// EXAMPLE DATA: Films today, tomorrow, ... 
 

 
var ar1 = [ 
 
{ 
 
    "titolo": " Child 44 – Il bambino numero 44 ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/Child-44-trailer-italiano-e-locandina-del-thriller-con-Gary-Oldman-e-Tom-Hardy-2-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Run All Night – Una notte per sopravvivere ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/locandina2-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Ritorno al Marigold Hotel ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/36366-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " I 7 nani ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/xHIrTDXTLZF1jBd7CQNf-150x214.jpg" 
 
} 
 
]; 
 
    
 
var ar2 = [ 
 
{ 
 
    "titolo": " I 7 nani ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/xHIrTDXTLZF1jBd7CQNf-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Adaline – L’eterna giovinezza ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/adaline-poster-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Avengers: Age of Ultron – 2D ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/ultron.poster-2-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Fast and Furious 7 ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/49946-150x214.jpg" 
 
} 
 
]; 
 
    
 
var ar3 = [ 
 
{ 
 
    "titolo": " The Gunman ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/RIBqwqVPwUp6VIWeRZlS-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Doraemon il film ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/doraemon-il-film-le-avventure-di-nobita-e-dei-cinque-esploratori_notizia-2-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Child 44 – Il bambino numero 44 ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/Child-44-trailer-italiano-e-locandina-del-thriller-con-Gary-Oldman-e-Tom-Hardy-2-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Run All Night – Una notte per sopravvivere ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/locandina2-150x214.jpg" 
 
}, 
 
{ 
 
    "titolo": " Ritorno al Marigold Hotel ", 
 
    "locandina": "http://www.metropoliscinemas.it/wp-content/uploads/36366-150x214.jpg" 
 
} 
 
]; 
 
    
 
    main(); 
 
    
 
</script> 
 
</body> 
 
</html>

+0

именно то, что я искал! ти –

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