【问题标题】:afnetworking get json data out from responseafnetworking 从响应中获取 json 数据
【发布时间】:2015-07-02 23:37:53
【问题描述】:

我正在尝试从请求中提取数据(只是一个字符串)并将其设置为 NSString。我尝试了很多方法,但它不起作用。如果有人能指出我的错误,那对我很有帮助。

json 数据

{
    "status": 1,
    "key": "1e39248f4a5e05153dc376a"
}

我的代码

NSString *key;
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    NSDictionary *params = @ {@"app_token" :APP_TOKEN};

    [manager POST:GET_USER_KEY_URL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSDictionary* response = (NSDictionary*) responseObject;
        key=[response valueForKey:@"key"];
        [[NSUserDefaults standardUserDefaults]setValue:(key) forKey:USER_KEY];
        NSLog(@"NEW KEY Request: %@", key);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"NEW KEY Request error: %@", error);
    }];

只想分配响应“key”数据并将其存储在 NSString *key 上;

提前谢谢你。

【问题讨论】:

  • 有什么错误吗? NSLog 是怎么说的?
  • 对于这一行key=[response valueForKey:@"key"];变量不可赋值(缺少 __block 类型说明符)
  • 你确定你得到了那个 JSON 吗? response或responseObject的内容是什么?
  • 是的。没有那行日志打印数据
  • 你可以试试 objectForKey 代替 valueForKey 吗?而且我不确定“没有该行日志打印数据”是什么意思。当你记录响应时,你会从上面得到那个 JSON?

标签: ios objective-c json afnetworking


【解决方案1】:

您已经在块之外声明了变量键。你需要在NSString *key;前面加上__block

要在块外分配变量,您必须记住 __block 说明符。

相关问题: Assign a variable inside a Block to a variable outside a Block

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多