JSON 数据中的 UITableView 部分

发布于 2024-12-11 21:15:46 字数 283 浏览 0 评论 0原文

我有这样的 JSON 数据:

[{"id":"3","name":"jason"},{"id":"4","name":"karen"}]

我想构建一个表视图,其中包含每对 [id, name] 的一个部分。部分标题应为 id 值,每个部分的唯一单元格应为 name 值。

如何将 JSON 数据解析为数组并使用 [array count] 来确定必须显示多少部分?

非常感谢..

请原谅我糟糕的英语!

I have JSON data like this:

[{"id":"3","name":"jason"},{"id":"4","name":"karen"}]

I want to build a table view with a section for each pair [id, name]. The section title should be the id value, the only cell for each section should be the name value.

How can I parse the JSON data into an array and use [array count] in order to determine how many section have to be displayed?

Thanks very much..

forgive my bad English!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扛起拖把扫天下 2024-12-18 21:15:46

实现UITableViewDatasource以下方法:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [JSONArray count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    return 1;
}

设置部分的标题值:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [[JSONArray objectAtIndex:section] objectForKey:@"id"];
}

设置单元格的值实现UITableViewDelegate

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        cell.textLabel.text = [[JSONArray objectAtIndex:indexPath.section] objectForKey:@"name"]; // set the cell's text here
    }
    return cell;
}

供参考检查UITableViewDataSource< /a> 和 UITableViewDelegate< /a>

Implement the UITableViewDatasource following methods :

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [JSONArray count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    return 1;
}

To set the section's title value :

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [[JSONArray objectAtIndex:section] objectForKey:@"id"];
}

To set your cell's value implement UITableViewDelegate:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        cell.textLabel.text = [[JSONArray objectAtIndex:indexPath.section] objectForKey:@"name"]; // set the cell's text here
    }
    return cell;
}

For reference check UITableViewDataSource and UITableViewDelegate

残龙傲雪 2024-12-18 21:15:46

看看这个项目。它是一个使用 JSON 的框架:
https://github.com/stig/json-framework/

此框架的教程可以在以下位置找到:
http://iosdevelopertips.com/networking/iphone-json- flickr-tutorial-part-1.html

框架为 NSString 添加了一个类别。使用该类别,您可以将 JSON 数据解析为 NSArray (您的示例中的对象列表)或 NSDictionary (某些对象或结构):

#import "JSON.h"
...
NSString jsonString = //get your JSON from somewhere
NSArray * array = [jsonString JSONValue];

我希望我能给您一个印象,即如何实现您的目标。更多信息请参见 JSON 项目的教程或提到的教程。

如何从 JSON 数组构建表格就在答案中:来自 JSON 数据的 UITableView 部分

Have a look at this project. Its a framework to work with JSON:
https://github.com/stig/json-framework/

A tutorial for this framework can be found at:
http://iosdevelopertips.com/networking/iphone-json-flickr-tutorial-part-1.html

The framework adds a category to NSString. With that category you can parse JSON data into a NSArray (a list of objects as for your example) or a NSDictionary (some object or structure):

#import "JSON.h"
...
NSString jsonString = //get your JSON from somewhere
NSArray * array = [jsonString JSONValue];

I hope I could give you an impression, what to do in order to achieve your goal. Further information is in the tutorial of the JSON project or in the tutorial mentioned.

How to build a table from your JSON Array is in the answer: UITableView sections from JSON data

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文