簡體   English   中英

如何解析此json響應對象?

[英]How do I parse this json response object?

我有以下類型的json響應:

[{
  cat_name : value
  post : [{
          title:value
          image:value
          content:value
         },
         {
          title:value
          image:value
          content:value
         },
         {
          title:value
          image:value
          content:value
         }]
 },{
  cat_name : value
  post : [{
          title:value
          image:value
          content:value
         },
         {
          title:value
          image:value
          content:value
         }]
 },
{
 cat_name : value
 post : [{
         title:value
         image:value
         content:value 
         }]
}]

等等...

我嘗試了以下方法-

將響應對象存儲在數組(responseArray)中。 首先實現從0到responseArray.count的for循環,將post的值存儲在數組(postArray)中。 在第一個循環中,我實現了從0到postArray.count的第二個循環,並返回了postarray.count的count值。

編輯-添加循環

for (int i = 0; i < responseArrayList.count; i++) {

    postArrayList = [[responseArrayList objectAtIndex:i] valueForKey:@"post"];

    for (int j = 0; j < postArrayList.count; j++) {

        return postArrayList.count;

    }
}

它發出警告,第二個循環不會增加,只會運行一次。

如何設置numberOfRowsInSection的返回值?

從第二個循環中刪除行

返回postArrayList.count;

如果您的方法想要返回某些內容,請在for循環之外添加return語句。

@interface TableViewController ()

@property(nonatomic)NSArray *responseArrayList;

@end

轉換為JSON對象並將其存儲在全局變量中

- (void)viewDidLoad {
    [super viewDidLoad];
   myJsonString = //here your JSON string response;
   self.responseArrayList = [NSJSONSerialization JSONObjectWithData:[myJsonString dataUsingEncoding:NSUTF8StringEncoding]options:0 error:NULL];
}


-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
       return self.responseArrayList.count;    
}


- (NSInteger)numberOfRowsInSection:(NSInteger)section{
     NSArray *postArrayList = [[responseArrayList objectAtIndex:section] valueForKey:@"post"];
     return postArrayList.count;
}

我建議寫這樣的代碼...

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

     self.myarray=dict[@"result”][@“post”];

//store the value in newObject

[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

        NSLog(@"%@ my object is ",obj);
        myobject  *object = [[myobject alloc]init];
        object.name = obj.productName;
        object.image = obj.productimage;

        [_myarray addObject:object];

    }];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM