美文网首页
解决接口返回数据,某些字段为nil的问题

解决接口返回数据,某些字段为nil的问题

作者: zanyzephyr | 来源:发表于2016-07-27 17:31 被阅读42次

** 背景:**

公司接口返回的数据有一个特点:如果某个字段没有值,就不返回这个字段。这就造成在模型中赋值的时候,有些属性为nil。如果直接使用这个字段,碰到为nil就会有问题。
以前的解决方法有两种:①在使用时对nil进行处理;②在给模型赋值时,手动一个个处理。但无论哪一种,都要手动去一个个写太麻烦,今天查资料找到了下面的方法:

思路:用循环遍历模型中的属性,拿到属性名(propertyname)后,再用kvc取出属性值(propertyValue)进行判断,如果属性值为空,则把它赋值为空字符串“”,然后把属性值赋给属性。

关键部分代码:需要#import <Objc/runtime.h>
<code>

id matchBeanClass = objc_getClass("Foo");
unsigned int outCount, i;
objc_property_t *properties = class_copyPropertyList(matchBeanClass, &outCount);
for (i = 0; i < outCount; i++) {//循环读取self的属性列表
    objc_property_t property = properties[i];
    fprintf(stdout, "%s %s\n", property_getName(property), property_getAttributes(property));
    
    NSString *propertyName = [NSString stringWithUTF8String:property_getName(property)];
    NSString *propertyValue = [self valueForKey:propertyName];
    if (!propertyValue) {//如果值不存在,则赋值为“”
        propertyValue = @"";
    }else{
        propertyValue = [NSString stringWithFormat:@"%@", propertyValue];
    }
    
    [self setValue:propertyValue forKey:propertyName];
}

<code>

参考:http://blog.csdn.net/cubesky/article/details/38753885

相关文章

  • 解决接口返回数据,某些字段为nil的问题

    ** 背景:** 公司接口返回的数据有一个特点:如果某个字段没有值,就不返回这个字段。这就造成在模型中赋值的时候,...

  • 项目问题集锦(1)

    构造对象空指针问题 原因:接口没有返回uniq字段,导致构造函数某些属性为null,崩溃.[java.lang.I...

  • 在使用ObjectMapper时类型的转化

    注意后台json返回的同一字段返回数据不一样问题,导致Mapper属性为nil常见的是 后台的int和String...

  • HGET

    HGET 如果字段存在,返回字段对应的值 如果字段不存在,返回nil 如果key不存在,返回nil Command...

  • iOS 去除返回JSON中的NULL值

    请求接口时,返回的数据中可能有包含NULL值的字段,若使用到该字段,可能会造成程序的崩溃。为了解决这个问题,我们可...

  • 规范

    后端 1,接口返回的结构 1)每个接口的每种情况,数据结构必须一样2)没有数据的字段也必须返回字段

  • [Android流水化开发]工序5:封装数据加载、上传接口,并显

    原则: 接口输入输出的数据 要么为json,要么为文件流。 json返回数据必须包含如下的字段,而且0表示成功 同...

  • HMGET

    HMGET 返回hash表中对应字段的值,如果字段不存在,则返回nil Command Code Output

  • JSON 序列化对象出现 $ 符号

    背景 今天开发伙伴遇到一个特别坑的问题,接口返回数据返回到前端时,某些数据出现了“$ref”开头的结构数据,跟前端...

  • 如何写出一个能够避开测试的线上诡异bug ?

    一直以来, 前端工程代码中有着大量的对于接口返回字段值为null的处理. 在实际项目中, 接口字段返回null的...

网友评论

      本文标题:解决接口返回数据,某些字段为nil的问题

      本文链接:https://www.haomeiwen.com/subject/axwojttx.html