Je veux avoir deux méthodes d'essai passent:Désérialise cet objet avec Json.NET
[TestMethod]
public void TestDeserializationSingleArray()
{
// metaGrids is an array of arrays.
var data = @"{
""metaGrids"": [
[0, 0, 0],
[0, 0, 1],
[0, 0, 2]
]
}";
var result = JsonConvert.DeserializeObject<Data>(data);
}
[TestMethod]
public void TestDeserializationMultipleArrays()
{
// metaGrids is now an array of an array of arrays.
var data = @"{
""metaGrids"": [
[
[0, 0, 0],
[0, 0, 1],
[0, 0, 2]
],
[
[0, 0, 0],
[0, 0, 1],
[0, 0, 2]
]
]
}";
var result = JsonConvert.DeserializeObject<Data>(data);
}
Mon objet ressemble à ceci:
public class Data
{
[JsonConverter(typeof(MetagridsDataConverter))]
public int[][][] metaGrids;
}
Je suis en train d'utiliser une classe de conversion de données pour faire il fonctionne dans les deux situations, mais cela ne parvient pas pour moi:
public class MetagridsDataConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return true;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return null;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
}
}
Comment puis-je coder mon convertisseur pour qu'il fonctionne dans les deux situati ons? Dans ma logique ci-dessus, je continue à obtenir cette erreur (même si je suis juste essayer de baseline un cas où je peux obtenir le convertisseur pour déclencher correctement):
Newtonsoft.Json.JsonSerializationException: jeton inattendu lors objet désérialisation : StartArray. Chemin 'metaGrids [0]', ligne 3, la position 33.
Qu'est-ce que vous essayez est d'avoir une ou l'autre liste des listes ou une liste de listes de listes, non? https://stackoverflow.com/a/18997172/7034621 – orhtej2