如何将NSString值设置为NSMutable字典?

时间:2015-05-08 04:53:38

标签: ios objective-c json nsstring nsdictionary

我正在实现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);

任何人都可以帮我弄清楚原因,字典值用双引号显示,没有双引号。 谢谢

2 个答案:

答案 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);