iOS解析Server端返回JSON數據

在作quhao APP架構時,後臺Server端使用了Java,提供WebService,而iOS和Android做爲移動客戶端。在作數據交互時,Server端返回JSON格式數據。因爲iOS SDK中提供的JSON數據解析實在太過麻煩,這裏講下iOS下如何使用SBJson庫來解析JSON格式數據。json

首先我發起了一個HTTP請求,獲得一個response字符串,此字符串是JSON格式:架構

NSURL *url = [NSURL URLWithString:@"http://192.168.1.2:9081/allCategories"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request startSynchronous];
    NSError *httpError = [request error];
    NSString *response = @"";
    if (!httpError) {
        response = [request responseString];
//        NSLog(@"%@", response);
    }


返回的數據格式以下:url

 

 

[{"count":1000,"cateType":"benbangcai"},{"count":478,"cateType":"hanguoliaoli"},{"count":999,"cateType":"huoguo"},{"count":1000,"cateType":"mianbaodangao"},{"count":998,"cateType":"ribenliaoli"},{"count":1000,"cateType":"tianpinyinpin"},{"count":584,"cateType":"xiangcai"},{"count":999,"cateType":"chuancai"},{"count":260,"cateType":"dongnanyacai"},{"count":311,"cateType":"haixian"},{"count":1000,"cateType":"shaokao"},{"count":984,"cateType":"xiaochikuaican"},{"count":999,"cateType":"xican"},{"count":210,"cateType":"xinjiangqingzhen"},{"count":771,"cateType":"yuecaiguan"},{"count":1000,"cateType":"zhongcancaixi"},{"count":316,"cateType":"zizhucan"}]


咱們能夠看到JSON數據格式是很是整齊的,下面咱們就使用SBJson來解析每個數據塊的2個值:count和cateType。code

 

 

// 解析Server端返回的JSON數據
    SBJsonParser *jsonParser = [[SBJsonParser alloc] init]; //初始化SBJsonParser
    NSError *error = nil;
    NSArray *jsonObjects = [jsonParser objectWithString:response error:&error];
    [jsonParser release], jsonParser = nil;

    for (NSDictionary *dict in jsonObjects) {
        NSString *value1 = [dict objectForKey:@"cateType"];
        NSString *value2 = [dict objectForKey:@"count"];
        NSLog(@" value1 is : %@", value1);
        NSLog(@" value2 is : %@", value2);
    }

 

運行後打印結果:字符串

 

2013-07-23 21:16:28.962 quhaoIOS[832:c07]  value1 is : benbangcai
2013-07-23 21:16:28.962 quhaoIOS[832:c07]  value2 is : 1000
2013-07-23 21:16:28.963 quhaoIOS[832:c07]  value1 is : hanguoliaoli
2013-07-23 21:16:28.963 quhaoIOS[832:c07]  value2 is : 478
2013-07-23 21:16:28.963 quhaoIOS[832:c07]  value1 is : huoguo
2013-07-23 21:16:28.963 quhaoIOS[832:c07]  value2 is : 999
2013-07-23 21:16:28.964 quhaoIOS[832:c07]  value1 is : mianbaodangao
2013-07-23 21:16:28.964 quhaoIOS[832:c07]  value2 is : 1000
2013-07-23 21:16:28.964 quhaoIOS[832:c07]  value1 is : ribenliaoli
2013-07-23 21:16:28.964 quhaoIOS[832:c07]  value2 is : 998
2013-07-23 21:16:28.965 quhaoIOS[832:c07]  value1 is : tianpinyinpin
2013-07-23 21:16:28.965 quhaoIOS[832:c07]  value2 is : 1000
2013-07-23 21:16:28.965 quhaoIOS[832:c07]  value1 is : xiangcai
2013-07-23 21:16:28.966 quhaoIOS[832:c07]  value2 is : 584
2013-07-23 21:16:28.966 quhaoIOS[832:c07]  value1 is : chuancai
2013-07-23 21:16:28.966 quhaoIOS[832:c07]  value2 is : 999
2013-07-23 21:16:28.966 quhaoIOS[832:c07]  value1 is : dongnanyacai
2013-07-23 21:16:28.967 quhaoIOS[832:c07]  value2 is : 260
2013-07-23 21:16:28.967 quhaoIOS[832:c07]  value1 is : haixian
2013-07-23 21:16:28.967 quhaoIOS[832:c07]  value2 is : 311
2013-07-23 21:16:28.967 quhaoIOS[832:c07]  value1 is : shaokao
2013-07-23 21:16:28.968 quhaoIOS[832:c07]  value2 is : 1000
2013-07-23 21:16:28.968 quhaoIOS[832:c07]  value1 is : xiaochikuaican
2013-07-23 21:16:28.968 quhaoIOS[832:c07]  value2 is : 984
2013-07-23 21:16:28.969 quhaoIOS[832:c07]  value1 is : xican
2013-07-23 21:16:28.969 quhaoIOS[832:c07]  value2 is : 999
2013-07-23 21:16:28.969 quhaoIOS[832:c07]  value1 is : xinjiangqingzhen
2013-07-23 21:16:28.969 quhaoIOS[832:c07]  value2 is : 210
2013-07-23 21:16:28.970 quhaoIOS[832:c07]  value1 is : yuecaiguan
2013-07-23 21:16:28.970 quhaoIOS[832:c07]  value2 is : 771
2013-07-23 21:16:28.970 quhaoIOS[832:c07]  value1 is : zhongcancaixi
2013-07-23 21:16:28.970 quhaoIOS[832:c07]  value2 is : 1000
2013-07-23 21:16:28.971 quhaoIOS[832:c07]  value1 is : zizhucan
2013-07-23 21:16:28.971 quhaoIOS[832:c07]  value2 is : 316
相關文章
相關標籤/搜索