ios Json的解析与创建

之前写过类似微信的语音功能,这里用到了json解析与创建

+ (NSString *)voiceMessageConentWithEntity:(VMessageEntity *)entity{

    NSLog(@"entity.voiceMessage.voicemd5 == %@",entity.voiceMessage.voicemd5);

    if (!entity) {

        return nil;

    }

    VChatVoiceEntity *voiceMessage = entity.voiceMessage;

    if (!voiceMessage) {

        return nil;

    }

    NSString *voicemd5 = voiceMessage.voicemd5;

    NSString *duration = voiceMessage.duration;

    if (entity.messageType == VMessageTypeVoice) {

        NSMutableDictionary *rootDict = [NSMutableDictionary dictionary];

        if (voicemd5) {

            [rootDict setObject:voicemd5 forKey:@"md5"];

        }

        if (duration) {

            [rootDict setObject:duration forKey:@"duration"];

        }

       NSError *error = nil;

        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:rootDict options:NSJSONWritingPrettyPrinted error:&error];

        if (error) {

            NSLog(@"%@", error);

        }

        NSString *json = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

        return json;

    }else{

        return nil;

    }


}


+ (VChatVoiceEntity *)voiceWithJson:(NSString *)json{

    if (!json.length) {

        return nil;

    }

    NSData *jsonData = [json dataUsingEncoding:NSUTF8StringEncoding];

    NSError *error = nil;

    NSDictionary *root = [NSJSONSerialization JSONObjectWithData:jsonData

                                                         options:NSJSONReadingMutableLeaves

                                                           error:&error];

    if (root) {

        VChatVoiceEntity *voiceMessage = [[VChatVoiceEntity alloc] init];

        voiceMessage.voicemd5 = [root objectForKey:@"md5"];

        voiceMessage.duration = [root objectForKey:@"duration"];

        return voiceMessage;

    }

    return nil;


}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。