-3

JSON の例:

{ "image" : "http:\/\/www.domain.com\/blah\/blah\/blah\/5yph0gbfj3ip41a.jpg",
      "0" : { "thing1" : "Hello",
              "thing2" : "06\/21\/2013"
            },
      "1" : { "thing1" : "Goodbye",
              "thing2" : "06\/28\/2013"
            }
}

出現回数はどうやって数え"0" : {whatever}たらいいですか?1人増えていました。上記の例のように、2 を返すようにします。

私は id から JSON を読んでいます:[zoneJSONobject objectForKey:@"thing1"];

4

3 に答える 3

1

1 つのアプローチは、- [NSDictionary count]メソッド ( docs を参照) をキーの総数に使用し、存在する場合は数えたくないものを減算することです ("image"たとえば)。

別のアプローチは、次のようなキーを反復処理することです。

int keyCount = 0;
for (NSString *key in myDict)
    if (/* the string is a number */ )
        keyCount++;

(文字列が数値かどうかのテストに関する個別の SO 記事がたくさんあります。)

ただし、最善の方法は、JSON オブジェクトを変更してこれらの辞書を配列内で返すことです。そうすれば、反復を開始する前に辞書をカウントする必要がなくなります。そのオプションを利用できるかどうかわかりません。

于 2013-04-17T18:10:18.527 に答える
0

画像の主要なエントリが 1 つあり、次に数えたいすべての項目があるようです。次に、減算演算子を使用できます。

int n = dictionary.count - 1;
于 2013-04-17T18:07:31.680 に答える
0

ルートキーを数えたいですか?組み込みの NSJSONserialization クラスを使用して、そこから NSObjects を作成します。この場合、NSDictionary を取得します。その allKeys プロパティを呼び出すと、それが count プロパティになります!

于 2013-04-17T18:07:43.443 に答える