AFNetworking POST 请求中的 JSON 数据混乱

2024-04-02

我正在使用 AFNetworking for Objective-C 发送请求。当我 NSLog 参数时,这是我发送的对象:

games = (
        {
        id = 50;
        p = 8;
        ts = 0;
        tt = ();
        tw = 0;
        ys = 35150;
        yt = {
            156424496 = "37.416669";
            156609008 = "56.661210";
            ....
            252846816 = "7.075133";
            252856944 = "61.329850";
        };
        yw = 0;
    }, ...

这就是服务器接收到的内容。

games = (
        {id = 50;},
        {p = 8;},
        {ts = 0;},
        {tw = 0;},
        {ys = 35150;},
        {
            yt = {156424496 = "37.416669";};
        },
        {
            yt = {156609008 = "56.661210";};
        },
        ...
        {
            yt = {252846816 = "7.075133";};
        },
        {
            yt = {252856944 = "61.329850";};
        },
        {yw = 0;},
...

就好像它正在获取我的对象的每个属性并用它创建一个新对象。更糟糕的是,它获取数组中的多个对象,并将所有对象的所有属性放入数组的相同深度上,并将它们转换为单独的对象。

这是我用来发送此消息的代码:

NSArray *games = [ResourceManager getAllGames];
NSMutableArray *gamesArray = [[NSMutableArray alloc] initWithCapacity:[games count]];
for(Game *g in games)
{
    [gamesArray addObject:[g toDictionary]];
}
User *user = [ResourceManager getUser];
NSDictionary *params = [[NSDictionary alloc] initWithObjectsAndKeys:gamesArray, @"games", user.id, @"user_id", nil];
NSLog(@"PARAMS: %@", params); <- this is the first block of code above
[self postPath:API_SYNC_GAMES_URL parameters:params success:^(AFHTTPRequestOperation *operation, id JSON)
{
}

我一直无法弄清楚为什么会发生这种情况,而且我完全无法猜测。如果有人能指出我正确的方向,我将不胜感激。

UPDATE

如果我发布一个single object而不是它成功到达服务器的对象数组。


我能够通过使用 NSDictionary 而不是数组来解决这个问题。我拥有的每个对象都有一个唯一的键,因此我将该键用于 NSDictionary,如下所示:

NSMutableDictionary *gamesArray = [[NSMutableDictionary alloc] 
                                          initWithCapacity:[games count]];
for(Game *g in games)
{
    [gamesArray setObject:[g toDictionary] 
                   forKey:[NSString stringWithFormat:@"%@", g.id]];
}

这似乎已经解决了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AFNetworking POST 请求中的 JSON 数据混乱 的相关文章

随机推荐

  • 如何在 WooCommerce 中获取订单税务详细信息和税率?

    我正在尝试获取税率用于订单插件中的自定义变量 当然 我可以通过以下方式请求大量数据 order gt get 但我找不到获取税率的方法 例如 21 gt 21 有人有想法让这变得简单吗 你将会拥有获取订单税项这会给你一个数组WC Order
  • 循环遍历 XML 文档

    我的方法 if File Exists C config xml System Xml XmlDocument xd new System Xml XmlDocument xd Load C config xml System Xml Xm
  • 在 C# 中使用 PrintSpoolerAPI 函数 SetForm()

    我正在开发一个 Windows 窗体应用程序 我想在其中打印自定义文档 该自定义文档具有自定义尺寸 我必须使用 C 代码设置默认打印页面尺寸 我做了一些谷歌搜索并发现了PrintSpoolerAPI 我找到的代码将使用添加自定义表单 页面A
  • 使用空值上的连接级别使用 pl/sql 分割字符串

    我在 Oracle pl sql 中使用以下代码 版本 Oracle 数据库 11g 版本 11 2 0 1 0 select regexp substr A B C 1 level output from dual connect by
  • 仅为匿名用户缓存 ASP.NET 页面

    有没有一种简单的方法来仅为匿名用户缓存 ASP NET 整个页面 使用表单身份验证 上下文 我正在制作一个网站 其中向匿名用户显示的页面大多是完全静态的 但向登录用户显示的相同页面则不是 当然 我可以通过后面的代码手动完成此操作 但我认为可
  • LinkedHashMap 排序

    正如 LinkedHashMap 的 javadoc 中所指定的 如果将键重新插入到映射中 插入顺序不会受到影响 但在运行下面的程序时 我注意到在更改访问顺序时再次插入相同的键 Map
  • 开源和基于 Web 的 html5 文档查看器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无论屏幕分辨率如何,如何使 javascript css 弹出 div 居中?

    我有以下代码 它在禁用背景的同时打开一个新的弹出窗口 问题是我必须将其定位 使其距顶部 100px 已经通过 CSS dialog 获得 并且位于屏幕中央 无论用户的分辨率是多少
  • 如何只允许某些值作为Java方法的参数?

    我想编写一个仅采用某些参数值的方法 例如 f e 在里面ToastAndroid 中的类 你只能使用Toast LENGTH SHORT or Toast LENGTH LONG作为方法的持续时间makeText Context conte
  • 使用 NSLayoutManager 计算每个字形的帧

    在这个线程上 Core Text 在 iOS 中计算字母框架 https stackoverflow com questions 21443625 core text calculate letter frame in ios 他们能够使用
  • DebugDiag 和 MVC4 没有提供可用的堆栈跟踪

    我刚刚在我们的生产服务器上遇到了高 CPU 问题 并决定在本地练习调试此类情况 以便将来为此做好准备 但是当我尝试调试本地 MVC4 站点时 我没有获得与教程相同的信息堆栈跟踪做 问题 有谁知道是否可以获得更多信息的堆栈跟踪 我希望在某个地
  • MKAnnotation - 地图图钉标注在其他地图图钉后面弹出

    我的地图图钉可以非常密集地填充 因此当选择一个图钉时 标注会弹出 但大部分被所有其他地图图钉遮挡 我可以将地图图钉放在前面 它有一个代表选定的地图图钉 不是点击标注 选择引脚 有什么解决方法的建议吗 如果您使用自定义注释视图 您可以为选定的
  • 具有可变列数的 Infragistics XamDataGrid

    我需要能够支持 XamDataGrid 它在设计时不会有一定数量的列 例如 应用程序将运行 从服务器获取一些数据并创建一些对象 根据服务器的响应 每次运行应用程序时可能会有不同数量的对象 这是我的意思的一个例子 假设我调用某个服务并返回带有
  • 添加依赖后无法合并dex

    我收到错误 错误 任务 app transformDexArchiveWithExternalLibsDexMergerForPaidFreeDebug 执行失败 java lang RuntimeException com android
  • 仅在全日历中允许后台事件发生 eventOverlap

    有没有办法避免事件重叠 就像 fullcalendar 配置中的 eventOverlap false 一样 但另一方面允许背景事件重叠 我想将一些事件作为背景事件渲染到我的日历中 就像信息一样 其他日历中已经有一些事件 但允许我在顶部创建
  • 使用 Rally API 通过迭代获取用户故事

    我不知道如何在 Rally 中获取一个用户故事的所有字段 现在 我需要获取最后 5 次迭代 并计算每次迭代的完成点 我设法通过指定来获取迭代type iteration 但不知道如何获取这些迭代的用户故事 以及如何指定仅完成 我应该和Tas
  • Node.js 作为服务,exec 不起作用

    我正在使用 nssm 将 Node js 项目作为服务运行 当用户单击我的 Nodejs 网站上的按钮时 它应该运行require child process exec cmd c batfile bat function res send
  • CakePHP 分页 - 如何从 url 中删除“page:”以获得更好的 seo/更干净的 URL

    当我使用 CakePHP Paging 时 我得到一个像这样的 url http example com php page 2 我必须在控制器 视图和routes php中更改什么才能创建这样的工作网址 http example com p
  • 修改实体框架中实体的属性会导致验证错误

    我试图简单地加载一个实体 修改一个属性 然后将其保存回数据库 var db new NewsletterContext var newsletter db Newsletters Find x gt x ID newsletterID ne
  • AFNetworking POST 请求中的 JSON 数据混乱

    我正在使用 AFNetworking for Objective C 发送请求 当我 NSLog 参数时 这是我发送的对象 games id 50 p 8 ts 0 tt tw 0 ys 35150 yt 156424496 37 4166