Im VS2017でC#を使用しています。私は、データを取得する場所からJSONを持っており、この3つのクラス:不明なオブジェクトタイプを格納する
public class Azar
{
public int id_juego { get; set; }
public string timestamp { get; set; }
public int id_tipojuego { get; set; }
public string fecha { get; set; }
public int? sorteo { get; set; }
public object resultados { get; set; }
public string tipo_juego { get; set; }
public int tipo { get; set; }
}
public class ResultadoQuiniela
{
public string letras { get; set; }
public int[] numeros { get; set; }
}
public class ResultadoTelekino
{
public int sorteo { get; set; }
public int b1 { get; set; }
public int b2 { get; set; }
public int b3 { get; set; }
public int b4 { get; set; }
public int b5 { get; set; }
public int b6 { get; set; }
public int b7 { get; set; }
public int b8 { get; set; }
public int b9 { get; set; }
public int b10 { get; set; }
public int b11 { get; set; }
public int b12 { get; set; }
public int b13 { get; set; }
public int b14 { get; set; }
public int b15 { get; set; }
public int cat1 { get; set; }
public int cat2 { get; set; }
public int cat3 { get; set; }
public int cat4 { get; set; }
public int cat5 { get; set; }
public int cat6 { get; set; }
public int cat7 { get; set; }
public string prm1 { get; set; }
public string prm2 { get; set; }
public string prm3 { get; set; }
public string prm4 { get; set; }
public string prm5 { get; set; }
public string prm6 { get; set; }
public string prm7 { get; set; }
public string pozo { get; set; }
public string ext { get; set; }
}
Azar-> resultadosオブジェクトは2クラス、またはResultadoQuinielaまたはResultadoTelekinoのいずれかであることができます。私はjsonを解析してid_tipojuegoを見るまで、それらのどれがあるかわからない。私は私が行うことを知っていたら:
if(curAzar.id_tipojuego == 25)
{
ResultadoQuiniela resultados = (ResultadoQuiniela)curAzar.resultados;
}
をしかし、私はnullの結果を得ます。私はcurAzar(jsonから解析された結果である)が、すべての属性がresultadosオブジェクトに設定されていることを確認します。その情報を「ニュートラルな」方法で保存し、それを正しいオブジェクトにキャストするにはどうすればよいですか?それをオブジェクトとして宣言し、それをキャストすると、値はまったく格納されません。
EDIT:Newtonsoft.Json
[JSONをC#の動的オブジェクトにデシリアライズしますか?](https://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object) –
カスタム[JsonConverter ](https://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm)は、Json.netを使用している場合にこれを検出します。それをセットアップするには少しの労力がかかりますが、エンドユーザーにとっては非常に親密であるかもしれませんが、あなたのデータに基づいてどの種類のオブジェクトが入ってくるかを決めることができます – Icepickle
JSONからオブジェクトを逆シリアル化するのにどうしますか? – Valerii