【问题标题】:What should the return value of a JSON GET or POST look like?JSON GET 或 POST 的返回值应该是什么样的?
【发布时间】:2011-06-22 16:21:09
【问题描述】:

我是 JSON 新手,刚开始了解它的功能。

我正在尝试查看是否可以从某些 JSON 方法中获取打印一些数据。我一直在第一个和被注释掉的那个之间交替。想法是看看我是否可以打印 anything

id newConnection =  [scAPI performMethod:@"GET" onResource:@"me/connections.json" withParameters:nil context:nil userInfo:nil];



//  id newConnection =   [scAPI performMethod:@"POST"
//            onResource:@"connections"
//        withParameters:[NSDictionary dictionaryWithObjectsAndKeys:
//                        @"facebook_profile", @"service",
//                        @"imc://connection", @"redirect_uri",
//                        @"touch", @"display", //optional, forces services to use the mobile auth page if available
//                        nil]
//               context:nil
//              userInfo:nil];

   NSLog(@"newConnection %@", newConnection);


   NSLog(@"Is of type: %@", [newConnection class]);



   NSDictionary *dict = [newConnection objectFromJSONString];


for (id key in dict) {

    NSLog(@"key: %@, value: %@", key, [dict objectForKey:key]);

}

上面的代码没有出错,我得到的日志如下:

这看起来对吗?如何正确使用这些 JSON 方法来获取值字典?


编辑 1

要清楚我正在使用 JSONKit :)

【问题讨论】:

  • 要写字典来记录你可以简单地使用NSLog(@"%@", dict);。您的字典似乎是空的(或为零),因为日志中没有显示“key .. value ..”
  • @babbidi。确切地。任何想法为什么?

标签: iphone objective-c xcode json http


【解决方案1】:

我个人建议使用SBJSON library。用它来获取字典很简单。

从连接中获取响应,然后使用以下代码(其中 response 是一个包含来自服务器的响应的 NSString):

SBJsonParser *parser = [[SBJsonParser alloc] init];
NSArray *returnData = [parser objectWithString:[response stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"]];
[parser release];

NSDictionary *returnDict = (NSDictionary *)returnData;

这无关,但为了检查 JSON 数据,我还推荐Online JSON Viewer。您可以粘贴 JSON 字符串并使用可折叠的数组结构查看它。很方便。

【讨论】:

  • JSONKit 包含在我正在进行的一个项目中,所以为了简单起见,我将尝试坚持下去。如果上述内容有意义,有什么想法吗?
  • 换句话说,我的输出值应该是什么样的?出于某种原因,我不觉得一串数字是正确的:(
  • 好的,所以你的日志说 newConnection 是一个字符串,而字符串的值是那个 varchar 的东西? JSON 响应应如下所示:{"key": "value", "key2": "value2"}
  • scAPI 是 Soundcloud API 的一个对象(我正在与之通信)。好吧,我的 JSON 响应是不正确的 varchar。你觉得我做错了什么?
  • 好的,根据我从文档here 收集的信息,newConnection 只是对连接的引用,因此您可以稍后关闭它。它不是从连接返回的实际数据。我想您需要使用连接委托协议来获取您的 JSON 字符串。您应该重申您的问题,以询问有关使用 SoundCloud API 而不是使用 JSON 的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 2012-08-08
  • 1970-01-01
相关资源
最近更新 更多