菜鸟教程小白 发表于 2022-12-12 09:05:52

ios - JSON解析UITableViewController


                                            <p><p>我正在尝试将我的 JSON 数据传递到 UITableViewController。我确实设法将我的一个 JSON 传递到 UITableView 并在用户执行 egue 时将其显示在下一个 ViewController 上。问题是我得到了 4 个 JSON 数据,我希望它显示在 ViewController 上。由于我的 JSON 格式,我无法执行 ObjectForKey。 </p>

<p>这是我的 JSON </p>

<pre><code>{
    uid: &#34;60&#34;,
    name: &#34;pae1344&#34;,
    mail: &#34;[email protected]&#34;,
    theme: &#34;&#34;,
    signature: &#34;&#34;,
    signature_format: &#34;plain_text&#34;,
    created: &#34;1396189622&#34;,
    access: &#34;0&#34;,
    login: &#34;1396189622&#34;,
    status: &#34;1&#34;,
    timezone: &#34;Asia/Bangkok&#34;,
    language: &#34;&#34;,
    picture: &#34;0&#34;,
    init: &#34;[email protected]&#34;,
    data: null,
    uri: &#34;http://localhost/drupal/rest/user/60&#34;
},
</code></pre>

<p>这是来自 myTableViewController 的代码。</p>

<pre><code>#import &#34;TestinViewController.h&#34;
#import &#34;AFNetworking.h&#34;
#import &#34;TestinCell.h&#34;
#import &#34;EDscriptionViewController.h&#34;
@interface TestinViewController ()

@end

@implementation TestinViewController

- (id)initWithStyle:(UITableViewStyle)style
{
    self = ;
    if (self) {
      // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    ;
    self.finishedGooglePlacesArray = [ init];
    ;

    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

- (void)didReceiveMemoryWarning
{
    ;
    // Dispose of any resources that can be recreated.
}
-(void)makeRestuarantsRequests
{
    NSURL *url = ;

    NSURLRequest *request = ;

    AFJSONRequestOperation *operation = [AFJSONRequestOperation
                                       JSONRequestOperationWithRequest:request
                                       success:^(NSURLRequest *request, NSHTTPURLResponse *response, id responseObject)
                                       {

                                             self.googlePlacesArrayFromAFNetworking = ;
                                             self.body = ;
                                             self.tel = ;
                                             self.mail = ;

                                              ;
                                             NSLog(@&#34;%@&#34;, self.googlePlacesArrayFromAFNetworking);
                                             NSLog(@&#34;%@&#34; , self.body);
                                             NSLog(@&#34;%@&#34;, self.tel);
                                             NSLog(@&#34;%@&#34;, self.mail);
                                       }
                                       failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id responseObject)
                                       {
                                             NSLog(@&#34;Request Failed with Error: %@, %@&#34;, error, error.userInfo);
                                       }];

    ;

}
#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
    // Return the number of rows in the section.
    return ;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @&#34;Cell&#34;;
    TestinCell *cell = ;
    if (cell ==Nil){
      cell = [initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.txtEnterPriseName.text = ;
    cell.txtEnterPriseBody.text = ;
    cell.txtEnterPriseEmail.text = ;
    cell.txtEnterPriseTel.text = ;
    // Configure the cell...

    return cell;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

      NSIndexPath * indexPath = ;
      EDscriptionViewController *destViewController = (EDscriptionViewController*) segue.destinationViewController ;
      //   destViewController.enterprise = ;
      destViewController.detail = ;


    destViewController.Ebody = ;
    destViewController.EEmail = ;
    destViewController.ETel = ;
    //    destViewController.ebody = ;
//    destViewController.etel = ;
//    destViewController.email = ;
//   


}
</code></pre>

<p>有没有办法让我的 JSON 变成字典,所以我可以使用 ObjectForKey 选择要显示的内容? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>首先通过将 .m 和 .h 文件添加到您的项目来使用此库:</p>

<p> <a href="https://github.com/johnezang/JSONKit" rel="noreferrer noopener nofollow">JSONKit</a> </p>

<p>然后您可以将 JSON 字符串转换为字典。 </p>

<pre><code>//JSONString is a NSString variable with the JSON
NSDictionary *myJSONDic =
NSLog(@&#34;User Id is : %@&#34;,);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - JSON解析UITableViewController,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22755762/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22755762/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - JSON解析UITableViewController