我们如何处理iPhone中的动态Web服务?

时间:2012-03-06 10:48:53

标签: iphone xcode json web-services dynamic

我正在学习iPhone中的一些棘手的开发,在我的实验中我发现通常我们使用本地化的web服务,其中所有参数都是固定的(Keyword)。如果我的Web服务将更改响应中的某些字段,而不是我们在iPhone中处理的方式。请帮我。如果有人有任何好主意。

例如, Web服务响应1:

    [    {
      "Number":"A12 hrb",
      "List":[
         {
            "Type":"Works",
            "Display":{
               "dop":45,
               "dopper":56
            },
            "OAST":"10-01-2012",
            "OAET":"07-04-2012",
            "Cause":"define",
            "Impact":"Queue",
            "Description":"Take a Break.",
            "LName":"Lunetten To Lunetten",
            "Number":"A12 hrb",
         }
      ]    },   ]

Webservice Response2:

[    {
      "Number":"A12 hrb",
      "Number2":"A13 brs",
      "List":[
         {
            "Type":"Works",
            "Display":{
               "dop":45,
               "dopper":56
               "picker":90  
            },
            "OAST":"10-01-2012",
            "MAET":"07-04-2012", 
            "OAET":"07-04-2012",
            "Cause":"define",
            "Impact":"Queue",
            "Description":"Take a Break.",
            "LName":"Lunetten To Lunetten",
            "Number":"A12 hrb",
         }
      ]    },   ]

3 个答案:

答案 0 :(得分:1)

你可以这样做

  1. 解析响应。如果响应是JSON,那么你肯定会得到一本字典,只需保留它的参考。
  2. 您可以通过调用以下方法获取字典中的所有键
    • (NSArray *)allKeys
  3. 现在枚举上面的数组并访问每个键的值并执行您想要的任何操作
  4. 但是你应该知道动态键的含义/目的。如果你没有钥匙的意义/目的,这些步骤可能无法帮助你......祝你好运。

答案 1 :(得分:0)

我认为不可能完全解析它。至少你应该知道哪些钥匙会在那里。例如响应有Number,Number2&列出为键。如果某些响应不包含一个/一些键,则可以。

另一方面,如果事先知道所有密钥是不可能的,那么webservice应该具有传达响应中使用的密钥的机制。

  

e.g。

 [    {
      "dynamic_keys": "Number2",
      "Number":"A12 hrb",
      "Number2":"A13 brs",
      "List":[
         {
            "Type":"Works",
            "Display":{
               "dop":45,
               "dopper":56
               "picker":90
}, "OAST":"10-01-2012", "MAET":"07-04-2012", "OAET":"07-04-2012", "Cause":"define", "Impact":"Queue", "Description":"Take a Break.", "LName":"Lunetten To Lunetten", "Number":"A12 hrb", } ] }, ]

您可以读取“dynamic_keys”的值,然后使用该值可以读取实际动态键的值。

编辑:正如ssteinberg所提到的,你可以使用像JSONKit这样的框架来解析实际的JSON。 也请看这个:How to parse JSON having dynamic key node

答案 2 :(得分:0)

  

对于这种类型的案例,你可以获得字典和字典   可以获取所需标签的值意味着您只需要根节点   并将根节点存储在字典中的所有数据并处理它   字典供进一步使用..