我需要使用typescript导入数据类型为json的文件。数据是:
{
"italia": [
{
"regione": "Abruzzo",
"capoluoghi": [
{
"citta": "Chieti",
"sigla": "CH"
},
{
"citta": "L'Aquila",
"sigla": "AQ"
},
{
"citta": "Pescara",
"sigla": "PE"
},
{
"citta": "Teramo",
"sigla": "TE"
}
]
},{
"regione": "Basilicata",
"capoluoghi": [
{
"citta": "Matera",
"sigla": "MT"
},
{
"citta": "Potenza",
"sigla": "PZ"
}
]
}, ...
我建立的课程是:
class Capoluoghi {
citta: string;
sigla: string;
}
class Italia {
regione: string;
capoluoghi: Array<Capoluoghi>;
}
class RootObject {
italia: Array<Italia>;
}
导入数据的功能:
function ReadRegion() {
$.getJSON("italia.json", function (data) {
var regionRead= new RootObject();
var itemRead = [];
data.italia.forEach(s => {
itemRead = s;
var italiaRead= new Italia();
italiaRead["regione"] = s.regione;
s.capoluoghi.forEach(p => {
var capoluoghiRead= new Capoluoghi();
capoluoghiRead["citta"] = p.citta;
capoluoghiRead["sigla"] = p.sigla;
italiaRead.capoluoghi.push(capoluoghiRead);
})
regionRead.italia.push(italiaRead);
});
});
}
但不幸的是它总是失败,尤其是当“italiaRead”中的数量对象“capoluoghiRead”时。
我哪里错了? 戴夫
答案 0 :(得分:1)
问题是当实例化类时,属性不会被初始化。因此,当您实例化Italia类时,属性capoluoghi不是数组。 这同样适用于RootObject类。
for /F