0

キーの1つが空かどうかを確認できません。

以下は、私が使用している解析済みのJSON応答です。

ケース1(キー'タグ'は空ではありません)

{
height = 480;
pid = "a@bsioihf93u420934";
tags =     (
            {
        attributes =             {
            mood =                 {
                confidence = 42;
                value = happy;
            };
            smiling =                 {
                confidence = 52;
                value = false;
            };
        };
        center =             {
            x = "49.86";
            y = "60.52";
        };
        confirmed = 0;
        width = "50.28";
    }
);
url = "http://abc/efg/hijk/lmnop.jpg";
width = 360;
}

応答が次のようになる場合があります。

ケース2(キー'タグ'は空です)

{
height = 480;
pid = "a@bsioihf93u420934";
tags =     (
);
url = "http://abc/efg/hijk/lmnop.jpg";
width = 360;
}

ケース2で「タグ」が空かどうかを確認すると、falseが返されます。

if ([photo objectForKey:@"tags"] == nil)

[photo objectForKey:@"tags"]ログ内のの実際の値を確認すると、次の結果が返されます。

(
) 

'タグ'が空かどうかを他に確認するにはどうすればよいですか?

4

2 に答える 2

7

試す:

if ([[photo objectForKey:@"tags"] count] == 0)
于 2012-07-15T04:07:30.420 に答える
0

JSONテキストをどの程度正確に解析して保存していますか?NSArray / NSDictionary(多分)に保存しているように見えますか?それがどのように解析され、どのデータ構造がそれを格納しているかについての少しの説明が役立つでしょう。

NSArray / NSDictionaryに保存しているとすると、「タグ」が空かどうかを現在チェックしている方法で何が問題になっているのでしょうか。

もしも

if ([photo objectForKey:@"tags"] == nil)

は、ケース1ではfalseを返し、ケース2ではtrueを返します。これは、ケース2ではキー「tags」のデータ構造に値がないことを意味します。つまり、「tags」フィールドは空です。

それは実際にチェックするための最良かつ最も実用的な方法のようです。

于 2012-07-15T04:07:33.637 に答える