How to parse JSON into Objective C - SBJSON(如何将 JSON 解析为 Objective C - SBJSON)
问题描述
能否请您告诉我如何传递如下所示的 JSON 字符串:
Could you please tell me how to pass a JSON String which looks like this:
{"lessons":[{"id":"38","fach":"D","stunde":"t1s1","user_id":"1965","timestamp":"0000-00-00 00:00:00"},{"id":"39","fach":"M","stunde":"t1s2","user_id":"1965","timestamp":"0000-00-00 00:00:00"}]}
我试过这样:
SBJSON *parser =[[SBJSON alloc] init];
NSArray *list = [[parser objectWithString:JsonData error:nil] copy];
[parser release];
for (NSDictionary *stunden in list)
{
NSString *content = [[stunden objectForKey:@"lessons"] objectForKey:@"stunde"];
}
提前致谢
最好的问候
推荐答案
请注意,您的 JSON 数据具有以下结构:
Note that your JSON data has the following structure:
- 顶级值是一个对象(字典),它有一个名为课程"的属性
- 课程"属性是一个数组
- lessons"数组中的每个元素都是一个对象(包含课程的字典),具有多个属性,包括stunde"
对应的代码是:
SBJSON *parser = [[[SBJSON alloc] init] autorelease];
// 1. get the top level value as a dictionary
NSDictionary *jsonObject = [parser objectWithString:JsonData error:NULL];
// 2. get the lessons object as an array
NSArray *list = [jsonObject objectForKey:@"lessons"];
// 3. iterate the array; each element is a dictionary...
for (NSDictionary *lesson in list)
{
// 3 ...that contains a string for the key "stunde"
NSString *content = [lesson objectForKey:@"stunde"];
}
几个观察:
在
-objectWithString:error:
中,error
参数是一个指向指针的指针.在这种情况下,使用NULL
而不是nil
更为常见.not 传递NULL
并使用NSError
对象检查错误也是一个好主意,以防方法返回nil代码>
In
-objectWithString:error:
, theerror
parameter is a pointer to a pointer. It’s more common to useNULL
instead ofnil
in that case. It’s also a good idea not to passNULL
and use anNSError
object to inspect the error in case the method returnsnil
如果 jsonObject
仅用于该特定方法,您可能不需要复制它.上面的代码没有.
If jsonObject
is used only in that particular method, you probably don’t need to copy it. The code above doesn’t.
这篇关于如何将 JSON 解析为 Objective C - SBJSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将 JSON 解析为 Objective C - SBJSON


基础教程推荐
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01