zoukankan      html  css  js  c++  java
  • Convert an object into Json using SBJson or other JSON library

    Using SBJson, to convert a object to JSON string, you have to override the proxyForJson method. Like the following,

    The .h file,

    @interface MyCustomObject : NSObject {
       
    NSString *receiverFirstName;
       
    NSString *receiverMiddleInitial;
       
    NSString *receiverLastName;
       
    NSString *receiverLastName2;
    }
    @property (nonatomic, retain) NSString *receiverFirstName;
    @property (nonatomic, retain) NSString *receiverMiddleInitial;
    @property (nonatomic, retain) NSString *receiverLastName;
    @property (nonatomic, retain) NSString *receiverLastName2;

    - (id) proxyForJson;
    - (int) parseResponse :(NSDictionary *) receivedObjects;
    }

    In the implementation file,

        - (id) proxyForJson {

           
    return [NSDictionary dictionaryWithObjectsAndKeys:
                receiverFirstName
    , @"ReceiverFirstName",
                receiverMiddleInitial
    , @"ReceiverMiddleInitial",
                receiverLastName
    , @"ReceiverLastName",
                receiverLastName2
    , @"ReceiverLastName2",
                nil
    ];
       
    }

    And to get the object from the JSON string you have to write a parseResponse method like this,

    - (int) parseResponse :(NSDictionary *) receivedObjects {
        self
    .receiverFirstName = (NSString *) [receivedObjects objectForKey:@"ReceiverFirstName"];
        self
    .receiverLastName = (NSString *) [receivedObjects objectForKey:@"ReceiverLastName"];

       
    /* middleInitial and lastname2 are not required field. So server may return null value which
         eventually JSON parser return NSNull. Which is unrecognizable by most of the UI and functions.
         So, convert it to empty string. */

       
    NSString *middleName = (NSString *) [receivedObjects objectForKey:@"ReceiverMiddleInitial"];
       
    if ((NSNull *) middleName == [NSNull null]) {
            self
    .receiverMiddleInitial = @"";
       
    } else {
            self
    .receiverMiddleInitial = middleName;
       
    }

       
    NSString *lastName2 = (NSString *) [receivedObjects objectForKey:@"ReceiverLastName2"];
       
    if ((NSNull *) lastName2 == [NSNull null]) {
            self
    .receiverLastName2 = @"";
       
    } else {
            self
    .receiverLastName2 = lastName2;
       
    }

       
    return 0;
    }
  • 相关阅读:
    关于Scala中正则表达式的几种用法
    关于Scala中的match case方法的使用
    scala——Array函数大全
    线程并发的两种方式
    org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=EXECUTE——beeline 连接 hive 默认权限 anonymous用户权限不够
    hive函数大全
    hive的配置和HQL的查询优化
    Java-Web学习笔记-Java基础-反射
    BUAA OS Lab4 系统调用与fork
    设计模式(三)——结构型模式,如何搭建健壮且更好维护的系统
  • 原文地址:https://www.cnblogs.com/neozhu/p/2431890.html
Copyright © 2011-2022 走看看