0

私は次のJsonデータと同じです

"widget": {
        "debug": "on",
        "window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",
            "width": 500,
            "height": 500
        },
        "image": { 
            "src": "Images/Sun.png",
            "name": "sun1",
            "hOffset": 250,
            "vOffset": 250,
            "alignment": "center"
        },
        "text": {
            "data": "Click Here",
            "size": 36,
            "style": "bold",
            "name": "text1",
            "hOffset": 250,
            "vOffset": 100,
            "alignment": "center",
            "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
        }

また、ウィジェットの親ノードに linq で画像の子ノードが含まれていることを確認するにはどうすればよいですか? ウィジェットの親に指定された子ノードが含まれている場合、if-else 条件があります。

親が子プロパティを持っている場合、プロパティ データをデータベースに入力し、if コード ブロックで return true を実行します。

子が親ノードと一致する私の試したクエリ。

if(!((from x in widget[i].Children() where x.Contains("image") select x) is Nullable)) 
     something else..
else
    something else..

親が指定された子を持っていない場合は、子の値を持つパラメーターを指定します。else ブロック状態を実行し、false を返します。

子が親ノードと一致しないクエリを試しました。

  if(!((from x in widget[i].Children() where x.Contains("link") select x) is Nullable)) 
           something else..
        else
            something else..

しかし、親が子ノードを指定してelseブロックを実行していないときは、私はしませんでした..よろしくお願いします。

4

1 に答える 1

1

ここではクエリは必要ありません。キーでトークンにアクセスするだけです。

JObject obj = JObject.Parse(json);
bool imageExists = obj["widget"]["image"] != null;

次の JSON があるとします。

{
   "widget": {
        "debug": "on",
        "window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",
            "width": 500,
            "height": 500
        },
        "image": { 
            "src": "Images/Sun.png",
            "name": "sun1",
            "hOffset": 250,
            "vOffset": 250,
            "alignment": "center"
        },
        "text": {
            "data": "Click Here",
            "size": 36,
            "style": "bold",
            "name": "text1",
            "hOffset": 250,
            "vOffset": 100,
            "alignment": "center",
            "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
        }
    }
}
于 2014-06-06T15:53:26.553 に答える