55

これは、.NET の要求から取得した JSON です。

{
  "id": "110355660738", 
  "picture": {
    "data": {
      "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/1027085_12033235063_5234302342947_n.jpg", 
      "is_silhouette": false
    }
  }
}

そして、(おそらく?)LINQを使用して、フィールド「url」をキャッチしたいと思います。私はこのように多くのリクエストを行います, それは少し異なります. そのため、毎回 C# クラスを作成して逆シリアル化することはしません。

単一のフィールドを抽出する方法ですか? ありがとうございました!

4

4 に答える 4

84

Linq は必要ありません。使用するだけですdynamic( Json.Netを使用)

dynamic obj = JObject.Parse(json);
Console.WriteLine((string)obj.picture.data.url);

Linq のバージョンは読みにくい

JObject jObj = JObject.Parse(json);
var url = (string)jObj.Descendants()
                    .OfType<JProperty>()
                    .Where(p => p.Name == "url")
                    .First()
                    .Value;

ドキュメント: LINQ to JSON

于 2013-09-12T07:47:08.870 に答える
4

LINQ はお勧めしません。newtonsoft.json などの JSON ライブラリをお勧めします。

だからあなたはこれを行うことができます:

string json = @"{
  ""Name"": ""Apple"",
  ""Expiry"": "2008-12-28T00:00:00",
  ""Price"": 3.99,
  ""Sizes"": [
    ""Small"",
    ""Medium"",
    ""Large""
  ]
}";

JObject o = JObject.Parse(json);

string name = (string)o["Name"];

// Apple
JArray sizes = (JArray)o["Sizes"];
string smallest = (string)sizes[0];

// Small

注:- このコードは、プロジェクト サイト http://james.newtonking.com/pages/json-net.aspxにあるサンプルからコピーされたものです。

于 2013-09-12T07:45:34.690 に答える
0

このようにLINQで簡単にクエリできます

このJSONを考慮して

{
    "items": [
        {
            "id": "10",
            "name": "one"
        },
        {
            "id": "12",
            "name": "two"
        }
    ]
}

jsonこのように呼ばれる変数に入れましょう。

JObject json = JObject.Parse("{'items':[{'id':'10','name':'one'},{'id':'12','name':'two'}]}");

"one"次の LINQ クエリを使用して、name が存在するアイテムからすべての ID を選択できます。

var Ids =
    from item in json["items"]
    where (string)item["name"] == "one"
    select item["id"];

次に、IEnumerable リストに結果が表示されます。

于 2021-08-06T20:14:37.757 に答える
0

バインドでは、常に JSON をデシリアライズして XML にシリアライズし、XML を XDocument にロードできます。次に、従来の Linq to XML を使用できます。完了したら、XML を取得して逆シリアル化し、JSON から JSON にシリアル化します。この手法を使用して、もともと XML 用に構築されたアプリケーションに JSON サポートを追加しました。これにより、起動して実行するための変更をほぼゼロにすることができました。

于 2016-06-03T15:30:49.680 に答える