web-dev-qa-db-ja.com

配列JSON.Netの長さを取得する

C#でjson.netを使用して取得したJSON配列の長さを取得するにはどうすればよいですか? SOAP呼び出しを送信した後、応答としてJSON文字列を取得し、json.netを使用して解析します。

私が得たjsonの例:

{"JSONObject": [
    {"Id":"ThisIsMyId","Value":"ThisIsMyValue"},
    {"Id":"ThisIsMyId2","Value":"ThisIsMyValue2"}
]}

そして、私はそれを解析してコンソールに書きます:

var test = JObject.Parse (json);
Console.WriteLine ("Id: {0} Value: {1}", (string)test["JSONObject"][0]["Id"], (string)test["JSONObject"][0]["Value"]);

これは呪文のように機能し、JSONObjectの長さがわからないだけですが、forループで行う必要があります。 test["JSONObject"]の長さを取得する方法がわからない

しかし、test["JSONObject"].Lengthのようなものは簡単すぎると思います:( ..

36
Onno

次のように、オブジェクトをJArrayにキャストしてからCountプロパティを使用できます。

JArray items = (JArray)test["JSONObject"];
int length = items.Count;

その後、次のようにアイテムをループできます。

for (int i = 0; i < items.Count; i++)
{
    var item = (JObject)items[i];
    //do something with item
}

Onno(OP)によると、次のものも使用できます。

int length = test["JSONObject"].Count();

しかし、私はこれが機能することを個人的に確認していません

61
musefan

以下の行を使用して、.Net(JArray)のJSON配列の長さを取得できます。

 int length = ((JArray)test["jsonObject"]).Count;
0
ZaidRehman

これを試してください:

var test= ((Newtonsoft.Json.Linq.JArray)json).Count;
0
arul pushpam