2015-05-09 31 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(这仅仅是一天),即函数,其中i产生阵列的“心脏”,这将是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

马尔科 - 我明白你的英文好。然而,你需要举一个你想要的数据结构的例子。我认为你只需要对你的循环做一些小的改动来添加“电影”前缀。 – Roberto

回答

1

马尔科 -

如果你将永远有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

正是我一直在寻找! TY –