兩層嵌套的JSON包的解法

來源:互聯網
上載者:User

標籤:c   style   class   blog   code   java   

由於背景變態,有時候會出現兩層甚至多層嵌套的JSON包。

一層的很好解,而且我看過一些比較大的網站新聞介面返回的JSON包也僅僅是一層的。

比如所示一層的包

代碼也很簡單直觀

    dict = [data objectFromJSONData]; // 這裡可能會轉換失敗,還需要接著做判斷    _dinnArray = [[NSMutableArray alloc] init];    _dataArray = [dict objectForKey:@"data"];    for (NSDictionary *DinnDict in _dataArray) {        Service *servic = [[Service alloc]init];        servic.name = [DinnDict objectForKey:@"names"];        servic.time = [DinnDict objectForKey:@"server_time"];        servic.tel = [DinnDict objectForKey:@“tel”];        [_dinnArray addObject:servic];    }

讀取_dinnArray的時候也很簡單

    Service *service = [_dinnArray objectAtIndex:indexPath.row];

兩層的嵌套,看了很多網上的文章,都會出錯。

針對如所示的包

代碼今天暫時就不強調重點了。先貼在下面

    dict = [data objectFromJSONData];    _dataArray= [[dict objectForKey:@"data"]retain];    for (NSDictionary*ScourDict in _dataArray) {        _listArray=[ScourDict objectForKey:@"tel_list"];        NSMutableArray*scourArray=[[NSMutableArray alloc]init];        //NSLog(@"scoreArray remove %@",scourArray);        for (NSDictionary*listDict in _listArray) {            //NSLog(@"listDict %@",listDict);            //NSLog(@"listDict count %d",[listDict count]);            Address*address=[[Address alloc]init];            address.namelist=[listDict  objectForKey:@"name_contacts"];            address.phone=[listDict objectForKey:@"phone_number"];            [scourArray addObject:address];        }        [_fourArray addObject:scourArray];    }

讀取數組部分

    _adressArray=[_fourArray objectAtIndex:indexPath.section];    Address*address=[_adressArray objectAtIndex:indexPath.row];

重點是,在存的部分,scourArray必須為局部變數,不然只能儲存上最後一組資料,前面的都會被覆蓋掉。

另外,讀得部分,要套兩層才能把Array讀出來。這類似一個二維數組的變通實現方法。存,存的是一個二維的數組;讀,讀的也是一個二維數組。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.