当前位置: 首页 > 面试题库 >

如何解析收到的响应

姜嘉良
2023-03-14
问题内容

我对iOS应用程序开发非常陌生,并且从服务器收到以下响应:

"[{\"EmployeeID\":\"000001\",\"EmplyeeName\":\"ABCD EFGHI\"},
{\"EmployeeID\":\"000002\",\"EmplyeeName\":\"ADGHT ASASASAS\"}]"

请任何人帮助我了解如何在我的应用程序中使用员工ID和员工姓名。


问题答案:

您的JSON数据看起来像“嵌套JSON”,这意味着您必须将其反序列化两次。

第一个反序列化从您的JSON数据中提取一个字符串:

NSData *response = ...; // your data
NSError *error;
NSString *innerJson = [NSJSONSerialization JSONObjectWithData:response
                              options:NSJSONReadingAllowFragments error:&error];

现在innerJson是字符串

[{"EmployeeID":"000001","EmplyeeName":"ABCD EFGHI"},{"EmployeeID":"000002","EmplyeeName":"ADGHT ASASASAS"}]

再次是JSON数据。第二个反序列化提取数组:

NSArray *entries = [NSJSONSerialization JSONObjectWithData:[innerJson dataUsingEncoding:NSUTF8StringEncoding]
                              options:0 error:&error];

现在您可以像访问它

for (NSDictionary *entry in entries) {
    NSString* employeeID = [entry objectForKey:@"EmployeeID"];
    NSLog(@"%@", employeeID);
}


 类似资料:
  • 问题内容: 我正在使用CURL发送请求。响应数据类型为。如何解析此数据并将其插入数据库? JSON输出: 问题答案: 如果您的变量是字符串json之类的,则必须使用function将其解析为 对象 或 数组 : 输出值 现在,您可以将变量作为数组使用: 参考文献: json_decode -PHP手册

  • 我在将XML SOAP返回转换为相应的POJO类时遇到问题。XML返回如下所示: 我尝试使用Jackson XMLMAPER,但是在反序列化过程中,我不能把它作为根元素考虑返回节点。它将“信封”节点视为根节点。 我需要只提取返回节点并转换到我的pojo类。 另一个问题是“项目”节点应该是集合的一部分,但是没有对这些元素进行分组的父节点。 有没有人知道一个解析器可以对这种类型的xml进行反序列化?

  • 问题内容: 使用Google Geocoder v3,如果我尝试对20个地址进行地理编码,除非得到的时间间隔约为1秒,否则我将获得OVER_QUERY_LIMIT,但是所有标记都需要20秒才能放置完。 除了预先存储坐标以外,还有其他方法吗? 问题答案: 不,实际上没有其他方法:如果您有很多位置,并希望在地图上显示它们,最好的解决方案是: 创建位置后,使用地理编码器获取纬度+经度 将它们与地址一起存

  • 问题内容: 我收到此响应的结果是对服务器的GET请求 我只想从上述json响应中提取的值。 我正在使用此代码来获得此响应 我的问题是,我该如何解析并获取only 标签的值。谢谢 问题答案: 您可以解析当前的json字符串以从中获取它:

  • 问题内容: 我正在编写一个网络类,并希望能够解析对不同类的不同响应(仍然存在一对一的关系,但是我想拥有一个可以处理来自不同端点的所有响应的单个类,并具有预期的 classType 我应该映射到): 但是如果我写的话就会出错 更新 :可能更好的选择是将方法添加到类: 但是仍然存在相同的类型错误。 问题答案: 您应该将反序列化与应用程序的其他部分分开。您不能为所有响应实现一种方法,但是响应数量可能有限

  • 下面是关于如何设置messenger机器人的Facebook教程-使用ngrok设置我的webhook。本地测试一切顺利,但在向bot发送消息时仍然没有收到任何响应。 韩国https://ngrok.com/ facebook教程https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start/