私のアプリケーションはNSMutableData *receivedData
.
NSJSONSerialization を使用してこれを解析することを選択したのは、それが最も簡単であるという前提の下です。私はそれを行う方法を理解するのに非常に苦労しています。私は、Java のバックグラウンドから、Objective-C を初めて使用します。
Java では、gson を使用して JSON を解析し、簡単に使用できる配列にしました。私はここでこれに本当に苦労しています。
JSONを解析するための私の現在のコードは次のとおりです。
NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: receivedData options: NSJSONReadingMutableContainers error: &e];
if (!jsonArray) {
NSLog(@"Error parsing JSON: %@", e);
} else {
for(NSDictionary *item in jsonArray) {
NSLog(@"Item: %@", item);
}
}
インターネット上の誰かによって提供されたように。これは機能し、2 つの項目を NSLog に出力します。result
とheader
。JSON は次のようになります。
{
"header":{
"session":"sessionid",
"serviceVersion":"1",
"prefetchEnabled":true
},
"result":"50ce82401e826"
}
ただし、エラーがある場合、JSON は次のようになります。
{
"header":{
"session":"sessionid",
"serviceVersion":"1",
"prefetchEnabled":true
},
"fault":{
"code":0,
"message":"someErrorCode"
}
}
コードをどのように機能させたいか:
- 「障害」オブジェクトがあるかどうかを確認する
- ある場合は、fault.code と fault.message を NSLog に出力します。
- 存在しない場合、JSON にフォールトではなく結果が含まれていることがわかります
- 結果の値を NSLog に出力します
しかし、私は一生、それにアプローチする方法を理解することはできません。誰かが私にいくつかの指針を教えてもらえますか?