在調用接口上傳數據時,有時候需要將一個字典或一個數組轉換成json串,并作為一個普通的參數.
使用NSJSONSerialization
對其進行轉換:
NSDictionary *dic = @{@"appid":@"103905", @"tokenid":@"1", @"version":@"1", @"sign":@"1"};
NSData *JSONData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
NSString *str = [[NSString alloc] initWithData:JSONData encoding:NSUTF8StringEncoding];
大多數情況下,我們都是按照以上方法轉換.但是我發現 轉換后的字符串中有\n
符號.這導致了參數數據設置不成功.
@"{\n \"tokenid\" : \"1\",\n \"appid\" : \"103905\",\n \"sign\" : \"1\",\n \"version\" : \"1\"\n}"
經過嘗試后發現,這是一個參數的設置問題:
`NSJSONWritingPrettyPrinted`
這個參數的意思是轉換將字典裝換成打印之后跟適合閱讀的字符串,結果在字符串中添加了\n
符. 將這個參數成0,就不會再字符串中添加換行符了.
NSData *JSONData = [NSJSONSerialization dataWithJSONObject:dic options:0 error:nil];
參考文章
http://stackoverflow.com/questions/19314135/ios-runtime-use-case