次JSONを考える:LINQのツーJSONクエリ
{
"Data": {
"SPECIAL": "QQ01",
"AA": "QQ",
"BB": "QQ",
"Data": [
{
"SPECIAL": "QQ02",
"AA": "QQ",
"BB": "QQ",
"CC": "QQ",
"Data": [
{
"SPECIAL": "QQ03",
"AA": "QQ",
"CC": "QQ",
"Data": [
{
"SPECIAL": "QQ04",
"AA": "QQ",
"CC": "QQ",
"Data": [
{
"SPECIAL": "QQ05",
"AA": "QQ",
"CC": "QQ",
"Data": [
{
"SPECIAL": "QQ06",
"AA": "QQ",
"CC": "QQ"
}
]
},
{
"SPECIAL": "QQ07",
"AA": "QQ",
"CC": "QQ",
"DD": "QQ",
"Data": [
{
"SPECIAL": "QQ08",
"AA": "QQ",
"CC": "QQ",
"Data": [
{
"SPECIAL": "QQ09",
"AA": "QQ",
"BB": "QQ",
"CC": "QQ"
}
]
}
]
}
]
}
]
}
]
}
]
}
}
を私は、私はJSONのプロパティは、単に名前/値のペアであることを理解思いました名前は文字列で、値は文字列、JArray、またはJObjectです。私が正しいとすれば、上記のサンプルJSONは、3つの兄弟プロパティ(SPECIAL、AA、BB)を含むData JObjectで開きます。
次のデータ入力がJArrayであることを確認します。配列の最初の要素には、SPECIAL、AA、BB、およびCCの4つのプロパティを持つオブジェクトが含まれています。
質問: QQ01に等しいSPECIALの兄弟プロパティを返すためにLinqクエリを発行するにはどうすればよいですか?戻り値は、SPECIAL:QQ01、AA:QQ、およびBB:QQのみを含むJPropertyのリストでなければなりません。これらのプロパティはJObject内にあることに注意してください。
SPECIALの4つの兄弟プロパティをQQ02と同じにしたい場合は、同じクエリを実行する必要があります。その場合、戻り値はSPECIAL:QQ02、AA:QQ、BB:QQ、およびCC:QQのみを含むJPropertyのリストになります。これらのプロパティは、JArrayにあるJObjectにあることに注意してください。
ああ、QQ01に等しいSPECIALのエントリが複数ある場合、または2番目のケースではQQ02に等しいSPECIALのエントリが複数ある場合は、最初のものだけが必要です。
ありがとうございます。ここで
、それは理にかなっています。とてもエレガントです。私はあなたが知識を共有するたびに多くを学んでいますが、JSON.NETとLinqで練習する必要があることは間違いありません。高い5人と多くのありがとう。 – Jazimov
私は助けてよかった。 –