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
のようなものは簡単すぎると思います:( ..
次のように、オブジェクトを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();
しかし、私はこれが機能することを個人的に確認していません
以下の行を使用して、.Net(JArray
)のJSON配列の長さを取得できます。
int length = ((JArray)test["jsonObject"]).Count;
これを試してください:
var test= ((Newtonsoft.Json.Linq.JArray)json).Count;