web-dev-qa-db-ja.com

Json.Netを使用してJSON配列を解析する

私はJson.Netと協力して配列を解析しています。私がやろうとしているのは、名前と値のペアを配列から引き出し、JObjectの解析中に特定の変数に割り当てることです。

配列には次のものがあります。

[
  {
    "General": "At this time we do not have any frequent support requests."
  },
  {
    "Support": "For support inquires, please see our support page."
  }
]

そして、これが私がC#で持っているものです:

WebRequest objRequest = HttpWebRequest.Create(dest);
WebResponse objResponse = objRequest.GetResponse();
using (StreamReader reader = new StreamReader(objResponse.GetResponseStream()))
{
    string json = reader.ReadToEnd();
    JArray a = JArray.Parse(json);

    //Here's where I'm stumped

}

私はJSONとJson.Netにかなり慣れていないので、他の誰かにとっては基本的なソリューションかもしれません。基本的に、foreachループで名前/値のペアを割り当てるだけで、フロントエンドでデータを出力できます。誰もこれをやったことがありますか?

51
johngeek

次のようなデータ値を取得できます。

string json = @"
[ 
    { ""General"" : ""At this time we do not have any frequent support requests."" },
    { ""Support"" : ""For support inquires, please see our support page."" }
]";

JArray a = JArray.Parse(json);

foreach (JObject o in a.Children<JObject>())
{
    foreach (JProperty p in o.Properties())
    {
        string name = p.Name;
        string value = (string)p.Value;
        Console.WriteLine(name + " -- " + value);
    }
}

フィドル: https://dotnetfiddle.net/uox4Vt

115
Brian Rogers

Manatee.Jsonを使用 https://github.com/gregsdennis/Manatee.Json/wiki/Usage

また、オブジェクト全体を文字列に変換できます。filename.jsonはドキュメントフォルダーにあると想定されています。

        var text = File.ReadAllText("filename.json");
        var json = JsonValue.Parse(text);

        while (JsonValue.Null != null)
        {
            Console.WriteLine(json.ToString());

        }
        Console.ReadLine();
1
SDAL