2013-01-23 68 views
0

我是JSON和Web服務的新手,因此非常適合我。我收到了一個來自Web服務器的響應。在郵遞員,它看起來是這樣的:設置爲對象時JSON結果爲空,但結果可以打印出來

{ 
    "Response": { 
     "TranscriptSource": "MD", 
     "Result": [ 
      { 
       "Variant": { 
        "Chromosome": "chr1", 
        "Position": 13302, 
        "ReferenceAllele": "C", 
        "VariantAlleles": "T" 
       } 
      } 
     ], 
     "JobId": 0 
    } 
} 

如果我connectionDidFinishLoading方法,我這樣做:

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:self.receivedData options:kNilOptions error:&error]; 
[dict enumerateKeysAndObjectsUsingBlock:^(id obj, id key, BOOL *stop) { 
    NSLog(@"key: %@ obj: %@\n", [key description], [obj description]); 
}]; 

我得到的結果相同。基本上我想要那個「變體」字段。所以我想我會先做

id result = [dict [email protected]"Result"]; 

當我通過調試器,結果是零。我不知道爲什麼,因爲我可以打印出來。

最後,我的主要問題是,如何訪問響應的變體部分,但如果您知道爲什麼id result將是零,那也會很酷。謝謝!

回答

3

您的頂層項目是帶有單個鍵「Response」的對象。它看起來像你想要的:

id result = [[dict objectForKey:@"Response"] objectForKey:@"Result"]; 
+1

而要到'Variant'字段,你需要挖掘到包含它的數組,所以要花費上述,第一個'Variant'條目將在'[[ [[dict objectForKey:@「Response」] objectForKey:@「Result」] objectAtIndex:0] objectForKey:@「Variant」]; – Mathew