我有一個dictionary
我須要使用dictionary
生成一個JSON string
。 能夠轉換嗎? 大家能幫忙嗎? json
這是NSArray和NSDictionary的類別,它使此操做變得很是容易。 我爲漂亮打印添加了一個選項(換行和標籤使閱讀更容易)。 url
@interface NSDictionary (BVJSONString) -(NSString*) bv_jsonStringWithPrettyPrint:(BOOL) prettyPrint; @end
。 spa
@implementation NSDictionary (BVJSONString) -(NSString*) bv_jsonStringWithPrettyPrint:(BOOL) prettyPrint { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:(NSJSONWritingOptions) (prettyPrint ? NSJSONWritingPrettyPrinted : 0) error:&error]; if (! jsonData) { NSLog(@"%s: error: %@", __func__, error.localizedDescription); return @"{}"; } else { return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; } } @end
。 調試
@interface NSArray (BVJSONString) - (NSString *)bv_jsonStringWithPrettyPrint:(BOOL)prettyPrint; @end
。 code
@implementation NSArray (BVJSONString) -(NSString*) bv_jsonStringWithPrettyPrint:(BOOL) prettyPrint { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:(NSJSONWritingOptions) (prettyPrint ? NSJSONWritingPrettyPrinted : 0) error:&error]; if (! jsonData) { NSLog(@"%s: error: %@", __func__, error.localizedDescription); return @"[]"; } else { return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; } } @end
如今無需第三方類iOS 5引入了Nsjsonserialization ip
NSString *urlString=@"Your url"; NSString *urlUTF8 = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url=[[NSURL alloc]initWithString:urlUTF8]; NSURLRequest *request=[NSURLRequest requestWithURL:url]; NSURLResponse *response; NSData *GETReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; NSError *myError = nil; NSDictionary *res = [NSJSONSerialization JSONObjectWithData:GETReply options:NSJSONReadingMutableLeaves|| NSJSONReadingMutableContainers error:&myError]; Nslog(@"%@",res);
此代碼對於獲取jsondata頗有用。 get
您還能夠經過在調試器中輸入如下內容即時執行此操做string
po [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:yourDictionary options:1 error:nil] encoding:4];
至少從ISO7開始,您能夠使用NSJSONSerialization輕鬆地作到這一點 。 it
要將NSDictionary轉換爲NSString: io
NSError * err; NSData * jsonData = [NSJSONSerialization dataWithJSONObject:myDictionary options:0 error:&err]; NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];