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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用返回的 json 对象中的特定项目设置反应组件的状态?
如何在http post body上发布json字符串?在对象 c
生成的json对象,用express发送post请求到服务端,JSON.stringify后保存到服务器后数据格式变得很奇怪?