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

Posted

技术标签:

【中文标题】如何将 NSString 值设置为 NSMutable 字典?【英文标题】:How to set NSString value to NSMutable dictionary? 【发布时间】:2015-05-08 04:53:38 【问题描述】:

我正在实现 Web 服务 API,数据内容类型是 JSON。请求的正文应该是字符串格式,即双引号,但是当我在字典中设置它时,我得到以下结果。谁能帮我将 NSString 设置为字典中的字符串值。

 NSMutableDictionary *reqParams = [NSMutableDictionary new]; 
[reqParams setObject:@"Data.SourceStreamRequest"forKey:@"_type"]; 

NSMutableDictionary *reqParams1 = [NSMutableDictionary new];  
[reqParams1 setObject:@"newmjpegdataSession"forKey:@"_type"];
       NSLog(@"%@:%@",reqParams,reqParams1);

输出


    "_type" = "Data.SourceStreamRequest";
:
    "_type" = newmjpegdataSession;

谁能帮我弄清楚字典值用双引号和不带双引号显示的原因。 谢谢

【问题讨论】:

因为第一个包含. 如何将第二个字符串设置为字典中的 NSString。 它设置一个 NSString 而不是任何其他值。 我希望 newmjpegdataSession 为“newmjpegdataSession”,但经过多次试验我无法达到这个结果。如何将文本封装在“”中? 为什么需要将值封装在 "" 中?它仍然是一个 NSString。 【参考方案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"

【讨论】:

我得到了这样的 resultAsString 值 [“newmjpegdataSession”],我需要它作为字典值。更多对象应该是“newmjpegdataSession”,键应该是“_type” 这是我的要求: NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"newmjpegdataSession",@"_type",nil]; NSError *error;NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error]; NSString *resultAsString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"json:\n%@", resultAsString); NSMutableDictionary *reqParams1 = [NSMutableDictionary 字典]; [reqParams1 setObject:resultAsString forKeyedSubscript:@"keyvalue"];但 reqparams 不在预期结果中 我对 reqParams1 的预期结果是 "_type"="newmjpegdatasession" @SMS 我的答案是正确的,我不知道您要做什么,或者您是否正确实施了答案。

以上是关于如何将 NSString 值设置为 NSMutable 字典?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NSString 值 @"3.45" 转换为浮点数?

iPhone:如何将 NSString 拆分为多行并将其设置为 UILabel? [复制]

如何将 NSString 转换为 NSNumber

如何将具有负整数的NSString转换为负整数

无法将“NSError”(0x264bd90)类型的值转换为“NSString”

如何将 NSString 对象中的字符转换为 UILabel 对象?