gpt4 book ai didi

ios - 用 JSON 填充 NSDictionary

转载 作者:行者123 更新时间:2023-12-01 17:41:56 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Decode JSON to NSArray or NSDictionary

(5 个回答)


9年前关闭。




我是 iOS 开发的新手。
我想填写这个json

"{
"form_name":"login_form_mobile",
"user_login":"mark wallet",
"password":"123456",
"dispatch":{"auth.login":"Sign in"}
}
"

进入 NSDictionary 以在帖子中使用它作为使用 AFNetworking 的 URL。

我这样填字典
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:@"login_form_mobile",@"form_name",@"markwallet",@"user_login",@"123456",@"password",@"{ \" auth.login \" : \" Sign in \" }",@"dispatch", nil];

现在我有两个问题
1-auth.login 之前和之后的\"显示,因为我只想显示双引号。
顺便说一句,我试图制作一个嵌套字典,这解决了第一个问题,但第二个问题没有。
2-当我运行应用程序时。看看字典是如何填充的,它是这样显示的
 {
dispatch = "{ \" auth.login \" : \" Sign in \" }";
"form_name" = "login_form_mobile";
password = 123456;
"user_login" = markwallet;
}

a-键与其值相等,我需要它:不 =
b-有些单词没有“”,例如密码、123456 和markwallet。我不知道为什么
c-我也不知道为什么调度和它的值(value)放在第一位。

编辑:

我使用了这个新代码。
NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"Sign in",@"auth.login", nil];

NSArray *keys = [NSArray arrayWithObjects:@"form_name",@"user_login",@"password",@"dispatch",nil];

NSArray *objects = [NSArray arrayWithObjects:@"login_form_mobile",@"markwalletz",@"123456",dic,nil];

NSMutableDictionary * params1 = [[NSMutableDictionary alloc]init];
params1 = [NSMutableDictionary dictionaryWithObjects:objects forKeys:keys];

但是当我在调试中看到 params1 值时
{
dispatch = {
"auth.login" = "Sign in";
};
"form_name" = "login_form_mobile";
password = 123456;
"user_login" = markwalletz; }

这与问题顶部所述的我需要的不同
当我用这本字典发送请求时,它会回复 BAD Request。

最佳答案

您需要了解的几件事:

  • 当你 NSLog 一个 NSDictionary 时,它不会显示 JSON 语法。是的,它表面上看起来像 JSON,但是,正如您所指出的,并非所有字符串都被引用(只有那些带有空格或奇数字符的字符串才会被引用)和 =用于代替 : .这是因为它是 description NSDictionary 对象,而不是 JSON 翻译。
  • 而且,另一方面,仅仅因为 JSON 和 NSDictionary 之间的东西看起来相同并不能使其相同。您的 "dispatch":{"auth.login":"Sign in"} entry 表示第二个 NSDictionary 作为键“dispatch”的值。您不能简单地通过使字符看起来像 JSON/description 来创建第二个字典。表示。相反,您必须(作为一个单独的概念步骤)创建该单元素字典,然后将其作为对象插入到外部字典中。
  • NSDictionary 和 JSON 相同的一个地方是 NSDictionary 和 JSON“对象”都没有维护它包含的键/值对的顺序。所以不要期望在一个版本与另一个版本中看到相同顺序的值。
  • 关于ios - 用 JSON 填充 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341763/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com