NSString,NSArray和NSDictionary to JSON标准格式字符串

298 篇文章 2 订阅
[cpp]  view plain copy
  1. #import <Foundation/Foundation.h>  
  2.   
  3. @interface NSString (HXAddtions)  
  4.   
  5. +(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary;  
  6.   
  7. +(NSString *) jsonStringWithArray:(NSArray *)array;  
  8.   
  9. +(NSString *) jsonStringWithString:(NSString *) string;  
  10.   
  11. +(NSString *) jsonStringWithObject:(id) object;  
  12.   
  13. +(void) jsonTest;  
  14.   
  15. @end  

[cpp]  view plain copy
  1. #import "NSString+HXAddtions.h"  
  2.   
  3. @implementation NSString (HXAddtions)  
  4.   
  5. +(void)jsonTest{  
  6.     //test  
  7.       
  8.     NSDictionary *dictionary1 = [NSDictionary dictionaryWithObjectsAndKeys:  
  9.                                  @"阿三\"\n11",@"name",  
  10.                                  @"18",@"age",  
  11.                                  nil];  
  12.     NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:  
  13.                                  @"阿四",@"name",  
  14.                                  @"20",@"age",  
  15.                                  nil];  
  16.       
  17.     NSArray *array = [NSArray arrayWithObjects:dictionary1,dictionary2, nil];  
  18.       
  19.       
  20.     NSDictionary *dictionary3 = [NSDictionary dictionaryWithObjectsAndKeys:  
  21.                                  @"李\na",@"name",  
  22.                                  @"29",@"age",  
  23.                                  nil];  
  24.       
  25.     NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:  
  26.                                 @"string",@"string",  
  27.                                 array,@"array",  
  28.                                 dictionary3,@"dictionary",  
  29.                                 nil];  
  30.     NSLog(@"dictionary:%@",dictionary);  
  31.     NSString *jsonString = [NSString jsonStringWithObject:dictionary];  
  32.     NSLog(@"dictionary jsonString:%@",jsonString);  
  33.       
  34.     NSLog(@"%@",[NSDictionary dictionaryWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]);  
  35.       
  36. }  
  37. +(NSString *) jsonStringWithString:(NSString *) string{  
  38.     return [NSString stringWithFormat:@"\"%@\"",  
  39.                             [[string stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"] stringByReplacingOccurrencesOfString:@"\""withString:@"\\\""]  
  40.                           ];  
  41. }  
  42. +(NSString *) jsonStringWithArray:(NSArray *)array{  
  43.     NSMutableString *reString = [NSMutableString string];  
  44.     [reString appendString:@"["];  
  45.      NSMutableArray *values = [NSMutableArray array];  
  46.     for (id valueObj in array) {  
  47.         NSString *value = [NSString jsonStringWithObject:valueObj];  
  48.         if (value) {  
  49.             [values addObject:[NSString stringWithFormat:@"%@",value]];  
  50.         }  
  51.     }  
  52.     [reString appendFormat:@"%@",[values componentsJoinedByString:@","]];  
  53.     [reString appendString:@"]"];   
  54.     return reString;  
  55. }  
  56. +(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary{  
  57.     NSArray *keys = [dictionary allKeys];  
  58.     NSMutableString *reString = [NSMutableString string];  
  59.     [reString appendString:@"{"];  
  60.     NSMutableArray *keyValues = [NSMutableArray array];  
  61.     for (int i=0; i<[keys count]; i++) {  
  62.         NSString *name = [keys objectAtIndex:i];  
  63.         id valueObj = [dictionary objectForKey:name];  
  64.         NSString *value = [NSString jsonStringWithObject:valueObj];  
  65.         if (value) {  
  66.             [keyValues addObject:[NSString stringWithFormat:@"\"%@\":%@",name,value]];  
  67.         }  
  68.     }  
  69.     [reString appendFormat:@"%@",[keyValues componentsJoinedByString:@","]];  
  70.     [reString appendString:@"}"];  
  71.     return reString;  
  72. }  
  73. +(NSString *) jsonStringWithObject:(id) object{  
  74.     NSString *value = nil;  
  75.     if (!object) {  
  76.         return value;  
  77.     }  
  78.     if ([object isKindOfClass:[NSString class]]) {  
  79.         value = [NSString jsonStringWithString:object];  
  80.     }else if([object isKindOfClass:[NSDictionary class]]){  
  81.         value = [NSString jsonStringWithDictionary:object];  
  82.     }else if([object isKindOfClass:[NSArray class]]){  
  83.         value = [NSString jsonStringWithArray:object];  
  84.     }  
  85.     return value;  
  86. }  
  87. @end  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值