【发布时间】:2016-10-02 01:38:16
【问题描述】:
当我 NSLog 一个字典输出是这样的:
{
accounts = (
{
"account_number" = 9000012;
"account_type" = "Saver Account";
ato = 0;
balance = "0.0";
},
{
"account_number" = 9000010;
"account_type" = "Primary Account";
ato = 0;
balance = "100000.0";
}
);
}
现在我需要在另一个程序中使用相同的字典(在我的测试中进行模拟)。 如何将此值从控制台复制粘贴分配到 NSDictionary?
我试图把它作为这个答案解释的 NSString
NSString *jsonStr = @" { ({\"account_number\" = 9000012; \"account_type\" = \"Saver Account\"; ato = 0; balance = \"0.0\";});}";
NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
return dict;
Converting NSString to NSDictionary / JSON
但这会返回 null。
我再次将 = 替换为 : 并尝试过
NSString *jsonStr = @" { ({\"account_number\" : 9000012; \"account_type\" : \"Saver Account\"; ato : 0; balance : \"0.0\";});}";
但还是不行?
更新
我设法以这种方式转换:
NSDictionary *account = @{ @"account_type":@"Account Type XXX",
@"account_number":@"Account Number 123" };
NSMutableDictionary *mainDict = [[NSMutableDictionary alloc] init];
[mainDict setValue:@[account] forKey:@"accounts"];
对于两个数组:
NSDictionary *account1 = @{ @"account_type":@"Account Type XXX",
@"account_number":@"Account Number 123" };
NSDictionary *account2 = @{ @"account_type":@"Account Type YYY",
@"account_number":@"Account Number 456" };
NSMutableDictionary *mainDict = [[NSMutableDictionary alloc] init];
[mainDict setValue:@[account1,account2] forKey:@"accounts"];
但是@Duncan C 声称这种方式不安全!
【问题讨论】:
-
如果您需要一些静态数据,您的更新方式很好。
-
@Wolverine 是的,我需要这个来模拟服务器响应以进行单元测试。
-
那么您的更新方法没有害处。
标签: ios objective-c nsstring nsdictionary