J'essaie de télécharger des données json où l'un des attributs est "easting"
. Pour la majorité du jeu de données JSON, "easting"
est un entier, mais il y a une poignée de cas où "easting"
une liste des nombres entiers comme indiqué ci-dessous:Comment gérer l'entrée d'un type de données différent pendant la désérialisation?
"easting" : 357570 ,
...
"easting" : [ 434939, 434942 ] ,
Mon code d'origine avait prévu "easting"
être un int
quand sa classe a été déclarée comme suit:
public class Item
{
public int easting { get; set; }
}
Cependant, je continue à avoir des erreurs en disant que je ne peux pas convertir un type int
à un type int []
. Si j'ajuste la définition de classe pour permettre easting
d'être de type int []
, j'obtiens simplement l'erreur inverse - je ne peux pas convertir un type int []
en un type int
.
Comment puis-je m'occuper de cela? Existe-t-il un moyen de rendre compte d'un type de données d'entrée variable pendant le processus de désérialisation?
Pouvez-vous utiliser une dynamique? Vérifiez cela: http://stackoverflow.com/questions/30147272/serialize-a-json-property-that-is-sometimes-an-array – jpgrassi
Si vous utilisez Json.net, alors ceci est une copie de [ cette question] (http://stackoverflow.com/questions/18994685/how-to-handle-both-a-single-item-and-an-array-for-the-same-property-using-json-n) – stuartd
@stuartd J'utilise actuellement 'JavaScriptSerializer' de' System.Web.Script.Serialization', bien que je puisse essayer de passer à Json.net car cet exemple semble simple. Merci. – jcusick