我想制作如下字符串
contentlist=["{\"id\":\"id1\"}"]
我怎样才能实现这个目标?
我尝试使用NSString
方法stringWithFormat:@"contentlist=[\"%@\"]
但是当你复制该字符串并将其粘贴到textedit或者粘贴或任何地方时,它都有\
个字符。
如果您print
此行显示为contentlist=["{"id":"id1"}]
我不想要的内容。
编辑:
这是我的代码..
NSString *stringUrl = <MY SERVER URL STRING>
NSString *param = [NSString stringWithFormat:@"contentlist=[%c%@%c]",34,header,34];
NSData *postData = [param dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
NSError *error;
NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:stringUrl parameters:nil error:&error];
req.timeoutInterval= 40.0;
[req setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[req setValue:postLength forHTTPHeaderField:@"Content-Length"];
[req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[req setHTTPBody:postData];
我的header
值是..
{\"id\":\"21ca7309\",\"indexVersion\":0,\"modified\":1501694202014,\"created\":1501691797232,\"modifiedBy\":\"42bebd87be6ddd4a\",\"name\":\"abcd\"}
我的参数值如何在debug
模式中显示..
@"contentlist=[\"{\"id\":\"21ca7309\",\"indexVersion\":0,\"modified\":1501694202014,\"created\":1501691797232,\"modifiedBy\":\"42bebd87be6ddd4a\",\"name\":\"abcd\"}\"]
我需要传递的方式如下:
contentlist:["{\"id\":\"21ca7309\",\"indexVersion\":0,\"modified\":1501694202014,\"created\":1501691797232,\"modifiedBy\":\"42bebd87be6ddd4a\",\"name\":\"abcd\"}"]
答案 0 :(得分:3)
您不需要使用stringWithFormat
正如您所提到的,如果您没有NSData
JSON
,那么请使用
NSError *error;
NSData *data = [NSJSONSerialization dataWithJSONObject:yourJSONO options:NSJSONWritingPrettyPrinted error:&error];
使用前请不要忘记检查错误:)
您可以使用以下代码轻松获取字符串
NSString *str = [[NSstring alloc] initWithData:data encoding:NSUTF8StringEncoding]