我希望args的值是json格式,我该怎么做?请帮我 我使用这个网站(http://jsonformatter.curiousconcept.com/)来检查我的json格式是否有效(正确)
{"密码":" 12345678","电子邮件":" peoplesfortest@gmail.com"} ===>有效(我希望这个在args中) " {\"密码\":\" 12345678 \" \"电子邮件\":\" peoplesfortest @的Gmail。 COM \"}&#34 ;; ===>无效
PS:我希望我的结果如下:
dict2 = {
args = {"password":"12345678","email":"peoplesfortest@gmail.com"}
}
args的值
//我的代码:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"peoplesfortest@gmail.com", @"email", @"12345678", @"password", nil];
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"\n\n output = %@", output);
//print out => output = {"password":"12345678","email":"peoplesfortest@gmail.com"}
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:output , @"args", nil];
NSLog(@"\n\n dict2 = %@", dict2);
//print out => dict2 = {args = "{\"password\":\"12345678\",\"email\":\"peoplesfortest@gmail.com\"}";}
答案 0 :(得分:1)
你所拥有的不是以你期望的方式记录,但你确实拥有你所描述的内容 - 你的例子中args的值是一个json字符串。
如果您确实希望日志记录以您期望的方式输出,那么您只想用dict初始化dict2作为键“args”的值:
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:dict , @"args", nil];
在这种情况下,您实际上只是嵌入了词典。如果你愿意,那些可以编码为json。
NSData *data = [NSJSONSerialization dataWithJSONObject:dict2 options:0 error:&error];
注意:混淆可能来自在记录NSDictionary时在幕后应用的toString转换。如果你在NSJSONSerialization之后改为记录NSString,你可能会更接近你想要的。
答案 1 :(得分:0)
这个怎么样:
NSDictionary *dict = @{
@"args" : @{@"password":@"12345678", @"email":@"peoplesfortest@gmail.com"}
};
答案 2 :(得分:0)
您想将NSDictionary转换为Json格式的NSString,对吗?
NSDictionary *your_data_dictionary = @{@"password": @"12345678", @"email": @"peoplesfortest@gmail.com"};
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:your_data_dictionary options:NSJSONWritingPrettyPrinted error:&error];
NSString *result = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
Logoutput:
{
"email" : "peoplesfortest@gmail.com",
"password" : "12345678"
}
答案 3 :(得分:0)
这看起来很困惑。原始代码的作用:它需要一个带有两个键“password”和“email”的字典,并将其转换为JSON作为NSString。然后它创建另一个字典,带有一个键“args”和一个字符串,并将其转换为JSON。碰巧,字符串包含JSON,但这没关系,它只是一个字符串。转换工作绝对正常。这只是非常不寻常的JSON。
mwu的答案似乎完全正确:
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:dict , @"args", nil];
创建字典,然后应使用NSJSONSerialization将其转换为JSON。 NSLog不输出正确的JSON!将NSLog的输出粘贴到JSON验证程序中不工作。