jsonをc#オブジェクトに変換するのに苦労しています。私のようなJSONを作成することができるよ。この構造によりJSONをc#オブジェクトに逆シリアル化する
:
私のJSONは(typescriptですで)他のアプリによって生成されるが、ここで私のJSONを生成するために使用されるオブジェクトの構造であります:
{
EQNode: { key: "userid", value: 5}
}
以上COMPLEXE:
{
AndNode: [
{
EQNode: { key: "userid", value: 5 }
},
{
LikeNode: { key: "username", value: "foo" }
}
]
}
あるいはそれ以上COMPLEXE:
public class EQNode
{
[JsonProperty("key")]
public string key { get; set; }
[JsonProperty("value")]
public int value { get; set; }
}
public class LikeNode
{
[JsonProperty("key")]
public string key { get; set; }
[JsonProperty("value")]
public string value { get; set; }
}
public class GTNode
{
[JsonProperty("key")]
public string key { get; set; }
[JsonProperty("value")]
public int value { get; set; }
}
public class LTNode
{
[JsonProperty("key")]
public string key { get; set; }
[JsonProperty("value")]
public int value { get; set; }
}
public class OrNode
{
[JsonProperty("EQNode")]
public EQNode EQ { get; set; }
}
public class AndNode
{
[JsonProperty("EQNode")]
public EQNode EQ { get; set; }
[JsonProperty("LikeNode")]
public LikeNode LIKE { get; set; }
[JsonProperty("GTNode")]
public GTNode GT { get; set; }
[JsonProperty("LTNode")]
public LTNode LT { get; set; }
[JsonProperty("OrNode")]
public List<OrNode> OR { get; set; }
[JsonProperty("AndNode")]
public List<OrNode> And { get; set; }
}
public class RootObject
{
[JsonProperty("AndNode")]
public List<AndNode> And { get; set; }
[JsonProperty("OrNode")]
public List<OrNode> OR { get; set; }
[JsonProperty("EQNode")]
public EQNode EQ { get; set; }
[JsonProperty("LikeNode")]
public LikeNode LIKE { get; set; }
[JsonProperty("GTNode")]
public GTNode GT { get; set; }
[JsonProperty("LTNode")]
public LTNode LT { get; set; }
}
をしかし、これは私に "ハードコード" を少し思わ:
{
AndNode: [
{
EQNode: { key: "userid", value: 5 }
},
{
OrNode: [
{
LikeNode: { key: "username", value: "foo" }
},
{
LikeNode: { key: "email", value: "[email protected]" }
},
]
}
]
}
I'haveは、このモデルを使用して、私のJSONを解析するために管理しました。私のモデルに素敵なモデル構造を持たせる方法はありますか?
すべての構造が同じである4つの異なるノードクラスがある理由はわかりません。それは単なるUnaryNodeではありませんか? (私はまた、あなたのプロパティの.NET命名規則に従うことを強くお勧めします) –
私の答えをチェックし、Visual Studioの助けを借りてください..詳細はjsonの構造の理解の詳細に行く必要はありません、Visual Studioはあなたのために働く –
あなたが知っているように、あなたのような属性括弧内のJSON名があれば、C#クラスとプロパティに任意の名前を付けることができます。 –