如何使用 iOS SDK 从 ASMX Web 服务中获取和解析 JSON?

Posted

技术标签:

【中文标题】如何使用 iOS SDK 从 ASMX Web 服务中获取和解析 JSON?【英文标题】:How to fetch and parse JSON from an ASMX Webservice using iOS SDK? 【发布时间】:2014-03-16 15:17:10 【问题描述】:

我有一个 ASMX - Web 服务并希望请求 JSON 格式的结果。因此我使用 Fiddler 发送一个 POST-Request。

方法:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<string> AllProjects()

   List<ProjectData> pList = m_linqHelper.GetProjects(string.Empty).ToList();
   List<string> ProjectNames = pList.Select(p => p.ProjectName).ToList();
   return ProjectNames;

提琴手 POST 请求:

POST http://localhost:52225/MyWebService.asmx/AllProjects HTTP/1.1
Content-Type: application/json
Host: localhost:52225
Content-Length: 0
Connection: Keep-Alive

结果我得到了一个类似的字符串:

"d":["My_Project"]

困扰我的是 "d":。如何使用 ios SDK 解析这样的请求?

提前致谢。

【问题讨论】:

【参考方案1】:

我也使用 ASMX 网络服务。 对于我的请求,我已经在 GitHub 上实现了 AFNeworking 库来调用 Webservice。

您可以在 GitHub 页面上找到帮助。 然后,网络服务给我一个 JSON 结果。所以我这样转换它:

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];

其中 responseObject 是 AFNetworking 请求的结果。

【讨论】:

没有更简单的解决方案吗?通常数据被分组为 ID : Value 。但是当我只返回一个字符串时它是如何工作的呢?就像我上面提到的,我得到的只是:"d":["My_Project"]

以上是关于如何使用 iOS SDK 从 ASMX Web 服务中获取和解析 JSON?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法限制对 ASMX Web 服务的访问,即 asmx 页面及其 WSDL?

如何从 2.0 asmx Web 服务返回 JSON

如何使用 Retrofit 将图像文件从 Android 上传到 ASP.NET(Web Services-ASMX) 上传文件夹

如何从 asmx Web 服务管理多个 ado.net 数据库连接

如何使用 Retrofit 在 android 中调用图像上传 Web 服务 (ASP.NET) .asmx 文件

通过 JSON 对象将 Session 对象中的字节数组传递给 Web 服务(Asp.Net 2.0 asmx)