麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

ios中使用SBJson拼接和解析json

2019-11-14 19:31:52
字體:
來源:轉載
供稿:網友

1.ios解析json
使用開源json包,項目地址:
     http://stig.github.com/json-framework/
NSData * responseData = [respones responseData];
      
     NSString * strResponser = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
SBJsonParser * parser = [[SBJsonParser alloc]init];
     NSMutableDictionary *dicMessageInfo = [parser objectWithString:strResponser]; // 解析成json解析對象
[parser release];
     //發送者
     NSString * sender = [dicMessageInfo objectForKey:@"sender"];

2.json嵌套對象解析:
//要上傳的字符串
    NSString *dataStr=[[NSString alloc] initWithString:@"{/"cross/":{/"1/":/"true/",/"2/":/"false/",/"3/":/"true/"}}"];
//獲取響應返回字符串
NSData * responseData = [respones responseData];
        
        NSString * strResponser = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
//嵌套解析
SBJsonParser * parser = [[SBJsonParser alloc]init];
            
            NSMutableDictionary *dicMessageInfo = [parser objectWithString:strResponser]; // 解析成json解析對象
            
            NSMutableDictionary * cross = [dicMessageInfo objectForKey:@"cross"];
            
            NSString *cross1= [cross objectForKey:@"1"];
            //解析json到各個字符串
            //發送者
            [parser release];
            NSLog(@"cross1: %@",cross1);
3.拼接json字符串

通過使用SBJson中的SBJsonWriter類的方法- (NSString*)stringWithObject:(id)value可以將一個對象中的值格式化為json字符串,符合key/value格式的數據封裝到NSDictionary后可以使用該方法進行格式化,其他數據通過拼接字符串的方式格式化。
在拼接過程中可以使用類NSMutableString的方法:
- (void)appendString:(NSString *)aString;、
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
動態添加字符串。
拼接的字符串可通過json在線驗證的方式驗證其格式是否正確,網址為:
http://jsonlint.com/
-(NSString *) getJsonString
{
    NSMutableString *json = [NSMutableString stringWithCapacity:128];
    NSString *jsonString=nil;
    SBJsonWriter *writer = [[SBJsonWriter alloc] init];
    [json appendString:@"{/"data/":{"];
    [json appendFormat:@"/"%@/":/"%d/",",@"reset",reset];
    if(missionStatus!=NULL)
    {
        jsonString=[writer stringWithObject:status];
        if(jsonString!=NULL)
        {
            [json appendString:@"/"status/":"];
            [json appendString:jsonString];
        }
    }
    [json appendString:@"}}"];
    return json;
}
4.利用多個NSDictionary,拼接多層嵌套的json字符串,減少因手工拼接忘記加引號導致的json格式錯誤
示例代碼:
NSDictionary *dataDictionary= [NSDictionary dictionaryWithObjectsAndKeys:mac,@"mac",
                                   game,@"game",
                                   devicetoken,@"devicetoken",
                                   device,@"device",
                                   gv,@"gv",
                                   lang,@"lang",
                                   os,@"os",
                                   hardware,@"hardware",
                                   down,@"down",nil];
    NSDictionary *parmDictionary= [NSDictionary dictionaryWithObjectsAndKeys:@"getsession",@"act",
                                   dataDictionary,@"data",nil];
    NSDictionary *jsonDictionary=[NSDictionary dictionaryWithObjectsAndKeys:pv,@"pv",
                                  parmDictionary,@"param",nil];
    SBJsonWriter *writer = [[SBJsonWriter alloc] init];
    
    NSString *jsonString=nil;
    jsonString=[writer stringWithObject:jsonDictionary];
    NSLog(@"%@",jsonString);
5.json字符串在線校驗網址:
http://jsonlint.com/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99热高清 | 成人免费自拍视频 | 日韩精品一区二区三区中文 | av黄色片网站 | 九九热精品视频在线 | 中文字幕观看 | 日本成人高清视频 | 中文字幕网站在线 | 热99精品视频 | 成人在线视频在线观看 | 第一区免费在线观看 | 奶子吧naiziba.cc免费午夜片在线观看 | 亚洲午夜久久久精品一区二区三区 | 免费国产人成网站 | 在线播放一级片 | 日本a在线观看 | 成人性视频免费网站下载软件 | 日本免费一区二区三区四区 | 国产伊人色 | 在线成人免费观看 | 午夜生活理论片 | 激情在线视频 | 国产四区 | 中日韩免费视频 | 国产精品爱久久久久久久 | 日韩av电影免费看 | 13一14毛片免费看 | 天天曰夜夜操 | 精品一区二区三区欧美 | a一级黄| 神秘电影91| 免费观看一区二区三区视频 | 一区小视频 | 国产高潮好爽受不了了夜色 | 国产亚洲高清视频 | 曰韩一级片 | www.guochanav.com| 国产午夜精品一区二区三区四区 | 国产乱弄 | 欧美一级黄色片在线观看 | 国内精品久久久久影院不卡 |