我们如何在iPhone中处理动态web服务?

我们如何在iPhone中处理动态web服务?,iphone,xcode,json,web-services,dynamic,Iphone,Xcode,Json,Web Services,Dynamic,我正在学习iPhone中一些棘手的开发,在我的实验中,我发现我们通常使用本地化的web服务,其中所有参数都是固定的(关键字)。如果我的web服务将更改响应中的某些字段,那么我们在iPhone中如何处理这些字段呢。请帮帮我。如果有人有什么好主意 比如说,, Web服务响应1: [    {       "Number":"A12 hrb",       "List":[          {             "Type":"Works",             "Display"

我正在学习iPhone中一些棘手的开发,在我的实验中,我发现我们通常使用本地化的web服务,其中所有参数都是固定的(关键字)。如果我的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",
         }
      ]    },   ]
Web服务响应2:

[    {
      "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",
         }
      ]    },   ]

我认为不可能完全解析它。至少你应该知道哪些钥匙会在那里。e、 g.响应以数字、数字2和列表作为键。如果某些响应不包含一个/一些键,则可以

另一方面,如果事先知道所有的键是完全不可能的,那么webservice应该有机制来传递响应中使用的键

e、 g.[{ “动态键”:“数字2”, “编号”:“A12 hrb”, “编号2”:“A13 brs”, “名单”:[ { “类型”:“工作”, “显示”:{ “dop”:45, “摄影者”:56 “选择器”:90
}, “OAST”:“10-01-2012”, “MAET”:“07-04-2012”, “OAET”:“07-04-2012”, “原因”:“定义”, “影响”:“队列”, “说明”:“休息一下。”, “LName”:“Lunetten到Lunetten”, “编号”:“A12 hrb”, } ]},]

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

编辑:正如ssteinberg所提到的,您可以使用一些框架,比如JSONKit来解析实际的JSON。 你也可以看到这一点:

对于这种情况,你可以在字典里找到字典 可以获取所需标记的值,这意味着您只需要根节点 并将根节点的所有数据存储在字典中并进行处理 供进一步使用的词典

你可以这样做

  • 解析响应。如果响应是JSON,那么肯定会得到一个字典,只需保留它的引用即可
  • 您可以通过调用以下方法获取字典中的所有键
    • (NSArray*)所有钥匙
  • 现在,枚举上面的数组并访问每个键的相应值,然后执行任何操作

  • 但是您应该知道动态键的含义/用途。如果您不知道键的意义/用途,这些步骤可能对您没有帮助。。。祝你好运

    如果问题是如何解析JSON,那么看看JSONKit。您可以控制webservice吗?或者它是第三方web服务?它是第三方web服务。但这与谁的web服务无关。问题是web服务响应不断变化。感谢您的回复,使用[(NSArray*)allKeys]方法我们只能获得主键。比如,如果我对上面提到的web服务使用这种方法,那么我们只能得到“Number”、“List”。对于内部键,我们必须制作另一个字典,并再次执行所有这些过程。事件我们不知道是否有子字典。嵌套json web服务可能会变得复杂。这不是合适的解决方案。我在前面尝试过。你是对的,这不合适,但你可以编写一个递归方法来完成所有这些事情。我不认为有任何现成的api用于此,您需要手动处理所有这些。我建议只写一个方法,可以处理任何事情的所有可能性。。。。。祝你好运。 [ { "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", } ] }, ]