- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用在 github 上找到的 SBJson 框架(很棒的东西)https://github.com/stig/json-framework/
例如:http://blog.zachwaugh.com/post/309924609/how-to-use-json-in-cocoaobjective-c
这个 Twitter 示例现在运行良好。
所以我改变了我的 url 和
for (NSDictionary *status in statuses)
{
// You can retrieve individual values using objectForKey on the status NSDictionary
// This will print the tweet and username to the console
NSLog(@"%@ - %@", [status objectForKey:@"text"], [[status objectForKey:@"user"] objectForKey:@"screen_name"]);
}
到
for (NSDictionary *status in statuses)
{
// You can retrieve individual values using objectForKey on the status NSDictionary
// This will print the tweet and username to the console
NSLog(@"%@ - %@", [status objectForKey:@"text"], [[status objectForKey:@"message"] objectForKey:@"nationalad"]);
}
所以我页面上的 json 有 message: 和 nationalad: 但我没有得到任何返回或日志打印出来。这些是我唯一改变的两件事。
有什么想法吗?
这是为了编辑:
SBJsonParser *parser = [[SBJsonParser alloc] init];
// Prepare URL request to download statuses from Twitter
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.mywebpagehere.com"]];
// Perform request and get JSON back as a NSData object
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
// parse the JSON response into an object
// Here we're using NSArray since we're parsing an array of JSON status objects
NSArray *statuses = [parser objectWithString:json_string error:nil];
// Each element in statuses is a single status
// represented as a NSDictionary
for (NSDictionary *status in statuses)
{
// You can retrieve individual values using objectForKey on the status NSDictionary
// This will print the tweet and username to the console
//NSLog(@"%@ - %@", [status objectForKey:@"text"], [[status objectForKey:@"message"] objectForKey:@"nationalad"]);
// NSLog(@"Message: %@", [status objectForKey:@"message"]);
}
// NSDictionary *json = [NSString JSONValue];
NSLog(@"Status: %@", statuses);
// NSArray *items = [statuses valueForKeyPath:@"data.array"];
//NSLog(@"message : %@", [[items objectAtIndex:1] objectForKey:@"message"]);
和服务器页面:
{
'message': "<p style=\"color:#FFFFFF;font-family:'Century Gothic',futura,'URW Gothic L',Verdana,sans-serif;\">Welcome!<\/p><p style=\"color:#FFFFFF;font-family:'Century Gothic',futura,'URW Gothic L',Verdana,sans-serif;\">Check out today's Dinner and Lunch specials below!<\/p>",
'nationalad': "<img src='http:\/\/www.mywebpage.com\/images\/national\/fullrz_3_4e81fa75ceba5_mywebpage.JPG'>"
}
最佳答案
这不是有效的 JSON — 所有字符串都必须放在双引号内,包括名称。如果您修复服务器以使其输出
{
"message": "<p style=\"color:#FFFFFF;font-family:'Century Gothic',futura,'URW Gothic L',Verdana,sans-serif;\">Welcome!<\/p><p style=\"color:#FFFFFF;font-family:'Century Gothic',futura,'URW Gothic L',Verdana,sans-serif;\">Check out today's Dinner and Lunch specials below!<\/p>",
"nationalad": "<img src='http:\/\/www.mywebpage.com\/images\/national\/fullrz_3_4e81fa75ceba5_mywebpage.JPG'>"
}
(注意 message
和 nationalad
都在双引号内),SBJSON 应该能够解析您的 JSON 字符串。
但是还有另一个问题:您的服务器没有返回一个数组——而是返回一个对象。修复您的服务器代码,使其返回一个对象数组,或者在您的客户端代码中解析单个对象:
NSDictionary *status = [parser objectWithString:json_string error:nil];
此外,请注意,通过在
中使用nil
NSArray *statuses = [parser objectWithString:json_string error:nil];
您实际上是在告诉 JSON 解析器不要在出现错误时返回错误对象。忽略错误通常不是一个好主意。你可以这样做:
NSError *jsonParseError;
NSArray *statuses = [parser objectWithString:json_string error:&jsonParseError];
if (!statuses) {
// there's been a parse error; look at jsonParseError
// for example:
NSLog(@"JSON parse error: %@", jsonParseError);
}
或者这个:
NSError *jsonParseError;
NSDictionary *status = [parser objectWithString:json_string error:&jsonParseError];
if (!status) {
// there's been a parse error; look at jsonParseError
// for example:
NSLog(@"JSON parse error: %@", jsonParseError);
}
关于objective-c - 为我的应用修改 SBJson 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614580/
当我第一次调用 SBJsonParser 时,它工作正常,但在第二次尝试时,结果始终为空。数据格式与第一种完全相同。 代码如下: -(void)connectionDidFinishLoading
我正在研究 JSON 数据解析,需要大量图像下载和数据解析。我有以下解析代码 - (void)connectionDidFinishLoading:(NSURLConnection *)connect
我正在尝试使用 SBJson 解析一些 json 数据以显示当前温度。本教程中的示例代码完美运行:Tutorial: Fetch and parse JSON 当我将代码更改为我的 json 提要时,
我正在尝试使用 SBJSON 解析 JSON 提要,但每次我通过仪器运行它时,我都会在一行中遇到 100% 的内存泄漏。我肯定有不正确的地方,希望能有一些见识。 我有一个城镇的表格 View ,当您单
我刚刚克隆了 SBJson 框架的 git 存储库,并将源代码导入到我的应用程序中。运行静态内存分析器,看到的结果让我有点害怕。看图 这怎么可能?我怀疑这个非常知名的库的开发者没有看到这个?事实上,如
我正在尝试在这里学习本教程 http://ios-blog.co.uk/iphone-development-tutorials/parsing-json-on-ios-with-asihttpreq
我正在使用 SBJSON 来解析数据,我想知道是否有一种方法可以在数据加载/检索完成时进行通知。 例如,当我启动应用程序时,我想在解析数据时显示启动画面,而当它完成时,我想显示一个新 View 。 我
我有一个 json 编码问题: 我需要使用 SBJSON 对对象格式 JSON 进行编码,然后再将其发送到 php 服务器目前此示例代码有效: NSArray *arrayData = [NSArra
我正在使用 SBJson 解析器开始一个新项目,人们似乎将其推荐为 Internet 上适用于新 iOS 项目的最佳工具。我有一个非常重要的问题,即 Stig Brautaset 声称您可以在 cur
我最近开始使用 SBJSON Parser 解析 JSON 文档,并且我能够很好地读取 JSON 文档。但是我无法弄清楚如何使用这个库编写 JSON。在文档下 http://stig.github.c
如何检查字段是否存在? 最佳答案 取决于你如何获取返回值,我假设它是一个字典,所以你会调用 NSDictionary* json = [parser objectWithString:yourStri
谁能告诉我json和sbjson的区别? 这两个有什么用? 谢谢 最佳答案 JSON 和 SBJSON 无法比较,因为一个是标准/协议(protocol),另一个是使用该标准的特定语言实现。 JSON
我从服务器收到的响应的格式如下: { "Data":{ "Key": "Value" ... }, "Key": "Value" ...
我在使用 SBJSON 解析器处理从 PHP 网络服务返回的响应字符串时遇到错误: NSString *responseString = [[NSString alloc] initWithData:
我想用 SBJSON 库在 iOS 上解析那些具有类似结构的 Json谁能帮我?非常感谢! {"error":{"username":["用户名已被占用。"],"email":["邮箱已被占用。"]}
我正在从 quizlet.com 获取数据,它适用于简单的代码: -(void) grabbQuizletWithUrl:(NSURL*)requstURL { NSString *data
我正在尝试解析以下 JSON(我认为上次检查时已验证): { "top_level" = ( { "download" = "h
我正在使用在 github 上找到的 SBJson 框架(很棒的东西)https://github.com/stig/json-framework/ 例如:http://blog.zachwaugh.
我曾多次尝试使用 NSJSONSerialization 和 SBJsonWriter 将同一个 NSDictionary 对象转换为 NSData 和 NSString,但有时会得到不同的字符串。甚
我已将 SBJson 文件夹复制到我的项目中,并且 #import "SBJson.h" 但是我还是没有得到 NSDictionary *result = [strResult JSONValue];
我是一名优秀的程序员,十分优秀!