POST JSON 数据到特定对象 iOS

Posted

技术标签:

【中文标题】POST JSON 数据到特定对象 iOS【英文标题】:POST JSON data to specific object iOS 【发布时间】:2015-04-15 01:53:01 【问题描述】:

我在 Stack 上阅读了几篇关于如何同时使用 XML 和 JSON 发布数据的帖子,但是关于如何更新选定对象的内容对我来说并没有什么特别之处。

我正在从我老板的工作跟踪 API 中提取数据,一切都已计算在内。但是我想更新单个选定对象的变量。

例子:

如果我有一个食谱站点 API,并且我正在提取 100 个食谱并在表格中显示标题。我选择一行,它会显示一个新屏幕,其中显示有关食谱的所有详细信息,其中包含用于更新内容的文本字段和一个将保存到网站的按钮。 如何更新所选食谱中的成分以使其在网站上显示?

请记住,我使用的是我的业务 API,而不是 Parse.com 或其他基于服务器的数据库。

我更喜欢使用 JSON,但是如果有更好的使用 XML 的解决方案,我可以接受。

新思想

更新时是否必须替换整个对象?

更多信息

由于使用 API,我没有直接指向特定对象的链接。我得到了块(100 个配方),必须遍历块以将每个对象保存为 NSObject,然后按照我喜欢的方式对新存储的 NSObject 进行排序。当我选择一行时,我选择了一个已排序的对象并显示该对象的内容。我不知道这些信息是否有用。

这个额外信息的原因是:

尝试通过 API 更新对象时,我如何知道我正在更新该特定对象而不是整个对象列表?

【问题讨论】:

您可以将数据发布到现有字段 @T_77 你有例子吗? 【参考方案1】:

我认为您想将数据发布到现有字段:

你可以试试这个来发布数据:

 NSString  *post = [NSString stringWithFormat:@"text_field1=%@",text_field.text];
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://your api to recieve the data into the fields"]]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
    NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

    if(conn) 
        NSLog(@"Connection Successful");

     else 
        NSLog(@"Connection could not be made");
    
    

【讨论】:

我有类似的东西,但是我害怕我可能会在整个数据库而不是选定的字段中这样做;-) 不过可能不得不咬紧牙关。 我很困惑,因为我不知道 API 如何知道我选择了哪个“配方”来更新成分变量?在 URL 内还是? 将所有食谱放在一个表中,并为每个食谱提供 ID .....所以您的网址应该类似于:[recipie/ID=%@,text_field.text]; 不幸的是,它对我不起作用。我在 API 中有 WHERE 和 ORDER 子句,它们没有通过应用程序响应。不过,它们在浏览器中测试时工作正常。会努力解决的。感谢您的帮助:-)【参考方案2】:

我认为你可以在 GitHub 上使用 Mantle。 https://github.com/Mantle/Mantle

【讨论】:

以上是关于POST JSON 数据到特定对象 iOS的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 将 JSON 对象转换为有序数组

如何使用返回的 json 对象中的特定项目设置反应组件的状态?

如何在http post body上发布json字符串?在对象 c

JSON 服务器 - 将数据发布到数组中的特定对象中

生成的json对象,用express发送post请求到服务端,JSON.stringify后保存到服务器后数据格式变得很奇怪?

如何利用jQuery post传递含特殊字符的数据