3

我正在开发一个与 Rest web 服务对话的应用程序。我使用的 JSon 解析器是 SBJson。服务器端有这个web服务返回一个beanA。这个 bean 包含一个 beanB。当有多个bean时,我从服务器端得到的部分Json是这样的:

        BeanB =             
        (
            {
                key = 12;
                name = test2bbb;
            },
            {
                key = 11;
                name = test2ttt;
            }
        );

当只有一个 bean 时,它看起来像这样:

        BeanB =             
        {
            key = 10;
            name = test3;
        };

通过SBJson解析器,当只有一个BeanB返回时得到一个字典,当返回多个BeanB时得到一个数组。我用来接收 bean 的代码是:

        NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];

问题是我无法预测我将从服务器端得到什么。有没有办法测试返回类型?

4

1 回答 1

5

这是适合检查返回值的类的情况。

id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
  NSDictionary *beanDic = beanB;
  ...
于 2011-12-02T21:10:50.490 回答