この形式のjsonをオブジェクトのリストにデシリアライズしたいとします。 これは私のJSONは次のようになります。JSON配列をC#でリストに逆シリアル化する
[{
id : 3,
vraag : "Op de keyserlei zijn er te weinig ...",
fase_id : "1",
antwoorden : [{
id : 12,
antwoord : "Bomen",
inspraakvraag_id : "3",
aantal_gekozen : "452"
}, {
id : 13,
antwoord : "Vuilbakken",
inspraakvraag_id : "3",
aantal_gekozen : "777"
}, {
id : 14,
antwoord : "Fietsstallingen",
inspraakvraag_id : "3",
aantal_gekozen : "456"
}
]
}, {
id : 5,
vraag : "Vind je dat er te veel geluidsoverlast in de binnenstad in het weekend",
fase_id : "1",
antwoorden : [{
id : 18,
antwoord : "Ja",
inspraakvraag_id : "5",
aantal_gekozen : "741"
}, {
id : 19,
antwoord : "Nee",
inspraakvraag_id : "5",
aantal_gekozen : "147"
}, {
id : 20,
antwoord : "Geen mening",
inspraakvraag_id : "5",
aantal_gekozen : "987"
}
]
}, {
id : 4,
vraag : "Welk van de volgende evenementen zou je graag zien op de groenplaats?",
fase_id : "1",
antwoorden : [{
id : 15,
antwoord : "Tuinbouw Expo",
inspraakvraag_id : "4",
aantal_gekozen : "785"
}, {
id : 16,
antwoord : "Metal festival",
inspraakvraag_id : "4",
aantal_gekozen : "156"
}, {
id : 17,
antwoord : "Counter strike LAN party",
inspraakvraag_id : "4",
aantal_gekozen : "456"
}
]
}, {
id : 2,
vraag : "In spark spoork noord zou ik graag ... zien",
fase_id : "1",
antwoorden : [{
id : 6,
antwoord : "Een speeltuin",
inspraakvraag_id : "2",
aantal_gekozen : "245"
}, {
id : 7,
antwoord : "Een fabriek",
inspraakvraag_id : "2",
aantal_gekozen : "241"
}, {
id : 8,
antwoord : "Een bos",
inspraakvraag_id : "2",
aantal_gekozen : "300"
}
]
}, {
id : 1,
vraag : "Voel je je 's avonds veilig in de stad Berchem?",
fase_id : "1",
antwoorden : [{
id : 9,
antwoord : "Ja",
inspraakvraag_id : "1",
aantal_gekozen : "452"
}, {
id : 10,
antwoord : "Nee",
inspraakvraag_id : "1",
aantal_gekozen : "721"
}, {
id : 11,
antwoord : "Niet van toepassing.",
inspraakvraag_id : "1",
aantal_gekozen : "123"
}
]
}
]
これが私のメインのコードは次のようになります。
var vraagTest = JsonUtility.FromJson<List<vraag>>(www.text);
私のクラス:
[System.Serializable]
public class vraag {
public int id;
public string vraagg;
public int fase_id;
public List<antwoorden> antwoorden;
}
と
[Serializable]
public class antwoorden {
public int id;
public string antwoord;
public int inspraakvraag_id;
public int aantal_gekozen;
}
私は私のいくつかのソリューションを試してみました
ArgumentException: JSON must represent an object type.
私はまた、別のクラスに最初のリストを入れて試してみたが、私は同じ問題を得る:
[Serializable]
public class vragenlijst{
public List<vragenlijst> vragen;
}
EDITを
私はnternetが、私は同じエラーを取得しておきます問題を修正しました!私はオブジェクトの周りにJSONをラップすることで修正しました.JsonUtilityはトップレベルのJSON逆シリアル化(Info []など)の配列型をサポートしていません。オブジェクトにJSONをラップする必要があります。
これは私の作業コードです:
{
vragen: [
{
id: 2,
vraag: "In spark spoork noord zou ik graag ... zien",
fase_id: "1",
antwoorden: [
{
id: 6,
antwoord: "Een speeltuin",
inspraakvraag_id: "2",
aantal_gekozen: "245"
},
{
id: 7,
antwoord: "Een fabriek",
inspraakvraag_id: "2",
aantal_gekozen: "241"
},
{
id: 8,
antwoord: "Een bos",
inspraakvraag_id: "2",
aantal_gekozen: "300"
}
]
},
{
id: 1,
vraag: "Voel je je 's avonds veilig in de stad Berchem?",
fase_id: "1",
antwoorden: [
{
id: 9,
antwoord: "Ja",
inspraakvraag_id: "1",
aantal_gekozen: "452"
},
{
id: 10,
antwoord: "Nee",
inspraakvraag_id: "1",
aantal_gekozen: "721"
},
{
id: 11,
antwoord: "Niet van toepassing.",
inspraakvraag_id: "1",
aantal_gekozen: "123"
}
]
},
{
id: 3,
vraag: "Op de keyserlei zijn er te weinig ...",
fase_id: "1",
antwoorden: [
{
id: 12,
antwoord: "Bomen",
inspraakvraag_id: "3",
aantal_gekozen: "452"
},
{
id: 13,
antwoord: "Vuilbakken",
inspraakvraag_id: "3",
aantal_gekozen: "777"
},
{
id: 14,
antwoord: "Fietsstallingen",
inspraakvraag_id: "3",
aantal_gekozen: "456"
}
]
}
]
}
メインコード:
var vraagTest = JsonUtility.FromJson<vragenlijst>(www.text);
クラス:
[Serializable]
public class vragenlijst{
public List<Vraag> vragen;
}
、
[System.Serializable]
public class Vraag {
public int id;
public string vraag;
public int fase_id;
public List<antwoorden> antwoorden;
}
、
[Serializable]
public class antwoorden {
public int id;
public string antwoord;
public int inspraakvraag_id;
public int aantal_gekozen;
}
JSONの周りに{}を追加することで修正しました.JsonUtilityは、トップレベルのJSON逆シリアル化(Info []など)の配列タイプをサポートしていないようですが、JSONをオブジェクトにラップする必要があります。手伝ってくれてありがとう! – Kamarov
オブジェクトの周りにJSOn配列をラップする* – Kamarov