如何从服务器响应中解析 json?

Posted

技术标签:

【中文标题】如何从服务器响应中解析 json?【英文标题】:how to parse json from server response? 【发布时间】:2014-01-17 07:50:53 【问题描述】:

我正在使用 AFNetworking 进行 Web API 调用。 我能够调用 API 并能够接收来自服务器的响应。 但 m 无法解析 json。

以下是来自服务器的响应:

<string xmlns="http://tempuri.org/">

 "ExistsInDB": "False", "CanSave": "True", "EntityName": "ACCOUNT", "TypeDescription":   
  "Company", "TypePluralDescription": "Companies", "RequiredProperties": 
  "SalesAchiever.Data.SAQueryFieldSet", "MetaData": "", "ReadOnly": "False", "ACCTNAME":
  "", "AREA_ID": "", "ACCT_TYPE_ID": "", "ADDR1": "", "ADDR2": "", "ADDR3": "", "TOWN":
  "", "COUNTY": "", "POSTCODE": "", "COUNTRY": "", "TEL": "", "FAX": "", "EMAILORWEB": 
  "", "BUYGRP_ID": "", "STATUS": "", "SIC_CODE_ID": "", "CURRENCY_ID": "", "CALL_FREQ":
  "0", "DORMANT": "False", "CREATOR_ID": "", "CREATED_ON": "01/01/0001 00:00:00", 
  "LAST_EDITOR_ID": "", "LAST_EDITED": "01/01/0001 00:00:00", "LAST_ACTION_BY": "", 
  "LAST_ACTION": "01/01/0001 00:00:00", "NEXT_ACTION_BY": "" 
</string>

我的问题是我能够从服务器获取响应。但是响应包含一些头文件。即&lt;string&gt;....data&lt;/string&gt;

我想从响应中删除该头文件并保存到 NSDictionary

谁能帮我解决这个问题? 我是这个平台的新手。

提前致谢。

【问题讨论】:

显示您当前拥有的 AFNetworking 代码。为什么服务器返回 JSON 封装在 XML 中? 可能是您错过了在请求中设置“Accept”标头:Accept: application/json 如果你想要json,为什么要把它设置为接受html bcoz 之前我将头文件设置为:[self setDefaultHeader:@"Accept" value:@"application/json"];所以应用程序崩溃了状态:AFNetworkingErrorDomain Code=-1016 【参考方案1】:

在服务器中添加头文件:

例如,如果您使用的是 php,请添加:

header('Content-Type: application/json');

【讨论】:

以上是关于如何从服务器响应中解析 json?的主要内容,如果未能解决你的问题,请参考以下文章

如何解析从 Web 服务响应收到的 JSON 响应

如何从android中的php关联数组解析JSON响应?

如何在 AJAX POST 请求后解析来自服务器的 JSON 响应?

解析从 android onMessageReceived 上的 fcm 响应获得的 json

如何从Angular中的响应中解析HTML?

Mechanize Rails - Web Scraping - 服务器使用JSON进行响应 - 如何将URL解析为下载CSV