JSONを返すWebサービスが作成されていると思います。返されるデータは次のようになります。このJSONデータをiOSで理解して使用する
{"invoice":{"id":44,"number":42,"amount":1139.99,"checkoutStarted":true,"checkoutCompleted":true}}
私には、有効なJSONのようです。
iOS5でネイティブJSONシリアライザを使用して、データを取得してNSDictionaryとして取得します。ログの
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:[request responseData] options:kNilOptions error:&error];
NSLog(@"json count: %i, key: %@, value: %@", [json count], [json allKeys], [json allValues]);
出力は次のようになります。だから、
json count: 1, key: (
invoice
), value: (
{
amount = "1139.99";
checkoutCompleted = 1;
checkoutStarted = 1;
id = 44;
number = 42;
}
)
、それはJSONデータは、NSStringのキー「請求書」を持ち、その値はそう
にNSArray ({amount = ..., check...})
しかし:私はNSArrayのに値を変換しますtestInvoiceはCFArrayではありません。私は、配列内の値をプリントアウトした場合:
for (id data in latestInvoice) {
NSLog(@"data is %@", data);
}
結果は次のとおりです。それが唯一の「ID」の代わりに「ID = 44」を返す理由を私は理解していない
data is id
data is checkoutStarted
data is ..
。 NSDictionaryにJSONデータを設定した場合、そのキーはNSStringですが値は何ですか?それはNSArrayまたは何か他のですか?
これは私が読んでチュートリアルです: http://www.raywenderlich.com/5492/working-with-json-in-ios-5
編集:NSDictionaryの*のJSONの「値」は、別のNSDictionaryのあるような答えから、それはそうです。私はそれが間違っているNSArrayまたはNSStringだと仮定します。言い換えると、[K、V] NSDictionaryのための* JSON =
ようNSDictionaryのために取らなければならないと思う、それはobjectForKey 'invoice'が実際に文字列であり、そしてあなたはさらにJSONとしてそれを解析する必要があることは可能ですか? –
単純な 'NSLog':NSLog(@" json:%@ "、json);' – zaph
これはNSDictinary *の "value"のようですが、別のNSDictionaryです。私はそれがNSStringかNSArrayのいずれかであったと仮定します。 – okysabeni