我正在实现Web服务API,数据内容类型是JSON。请求的主体应该是字符串格式,即双引号,但是当我在字典中设置它时,我得到以下结果。任何人都可以帮我在字典中将NSString设置为字符串值。
$('#add_prod_form input, textarea').not('#add_prod_submit').each(function(){ ...
输出
NSMutableDictionary *reqParams = [NSMutableDictionary new];
[reqParams setObject:@"Data.SourceStreamRequest"forKey:@"_type"];
NSMutableDictionary *reqParams1 = [NSMutableDictionary new];
[reqParams1 setObject:@"newmjpegdataSession"forKey:@"_type"];
NSLog(@"%@:%@",reqParams,reqParams1);
任何人都可以帮我弄清楚原因,字典值用双引号显示,没有双引号。 谢谢
答案 0 :(得分:1)
使用NSJSONSerialization
序列化字典。试试这个:
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"_type", @"Data.SourceStreamRequest",
@"_type", @"newmjpegdataSession", nil];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error];
NSString *resultAsString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"json:\n%@", resultAsString);
<强>输出:强>
json:{“newmjpegdataSession”:“_ type”,“Data.SourceStreamRequest” :“_ type”}
答案 1 :(得分:-1)
如下所示,您将在dictString对象中获取您的字典字符串。
NSString *str=[yourDictionaryString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSError *err = nil;
NSDictionary *arr =
[NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingMutableContainers
error:&err];
NSLog(@"arr %@",arr);