2012-03-20 84 views
0

我通過JSON字符串從我的WebService我的代碼中使用的NSDictionary的Json傳遞iphone

-(void)getData :(NSData*)respo{ 
NSError *error; 
NSMutableDictionary *jons =[NSJSONSerialization JSONObjectWithData:respo options:kNilOptions error:&error]; 
NSMutableArray *rnameary = [jons objectForKey:@"posts"]; 
NSMutableArray *tempary =[[NSMutableArray alloc]init]; 
for (int i=0;i < [rnameary count];i++) { 
    CfResultFatch *rs = [[CfResultFatch alloc] initWithName:[[rnameary objectAtIndex:i]objectForKey:@"BrandName"] 
                 cipd:[[rnameary objectAtIndex:i] objectForKey:@"Dose"]]; 
    [tempary addObject:rs];        
} 
result = [[NSMutableArray alloc] initWithArray:tempary]; 
[temptab reloadData]; 
} 

利用這一點,我從WebServies獲取數據,數據像

{ 
    ActiveCrNo = ""; 
    BPL = 0; 
    BloodGroupIDF = 1; 
    CRNumber = 0000187; 
    CashlessDetail = fgfghgfh; 
    CastIDF = 19; 
    ClassIDF = 7; 
    CloseCrNo = 0; 
    CompanyNo = ""; 
    DateOfBirth =   { 
     date = "1987-08-20 00:00:00"; 
     timezone = "Europe/Berlin"; 
     "timezone_type" = 3; 
    }; 
    Disability = 0; 
    EntryDate =   { 
     date = "2011-08-20 16:30:00"; 
     timezone = "Europe/Berlin"; 
     "timezone_type" = 3; 
    }; 
    ExpiredDate = "<null>"; 
    ExtraField1 = 0; 
    ExtraField2 = "<null>"; 
    FName = "Mrs.Shatayu"; 
    Gender = 0; 
    HospitalIDF = 4; 
    IncomeGroupIDF = "<null>"; 
    IsExpired = 0; 
    IsNewPatient = 0; 
    LName = Sharma; 
    MName = Maheshbhai; 
    MaritalStatus = 0; 
    PAN = ""; 
    PatientIDP = 202; 
    QualificationIDF = "<null>"; 
    ReligionIDF = "<null>"; 
    Remarks = ""; 
    SkillSetIDF = "<null>"; 
    UIDNumber = ""; 
}, 

等等大約500塊樣一個在這裏。 我很容易getfield命令一樣FNAME,LNAME,在排序外場我進入容易,但問題得到「出生日期」字段,我是嘗試所有的事情,但沒有什麼工作,如果有一個人知道,然後把它給我的建議

+0

ü[R面臨什麼問題? – Sarah 2012-03-20 08:58:41

+0

DateOfBirth給我返回3字段,我想只訪問日期然後我如何存儲它?就像我在其他字段上存儲FNAME – ravi 2012-03-20 09:04:53

+0

它給我一組3提交,如果我把objectForKey字段,那麼它會出錯。 – ravi 2012-03-20 09:06:10

回答

1

出生日期場只是一個NSDictionary。所以,你可以檢索它喜歡:

... 
NSDictionary *dof = [[rnameary objectAtIndex:i] objectForKey:@"DateOfBirth"]; 
NSString *date = [dof objectForKey:@"date"]; 
... 
+0

是的,它會去工作謝謝很多@Alladinian – ravi 2012-03-20 09:14:22

1

當你運行一個循環訪問對該NSDictionary中不同的密鑰值,再次分配objectForKey: DateOfBirth到另一個NSDictionary中。像:

NSDictionary *dict = [self getData:response]; 

NSDictionary *dictDateofBirth = [dict objectForKey:@"DateOfBirth"]; 

現在你可以使用這個作爲一個單獨的NSDictionary和訪問的日期,如果出生,如:

NSString *dob = [dictDateofBirth objectForKey:@"date"]; 
+0

我會嘗試它,但它會cresh – ravi 2012-03-20 09:09:01

+0

是的,對不起,這是你的getData方法... – 2012-03-20 09:26:05

+0

好的謝謝很多@kanan – ravi 2012-03-20 09:31:31