我们如何在iPhone中处理动态web服务?
我正在学习iPhone中一些棘手的开发,在我的实验中,我发现我们通常使用本地化的web服务,其中所有参数都是固定的(关键字)。如果我的web服务将更改响应中的某些字段,那么我们在iPhone中如何处理这些字段呢。请帮帮我。如果有人有什么好主意 比如说,, Web服务响应1:我们如何在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"
[ {
"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。 你也可以看到这一点: 对于这种情况,你可以在字典里找到字典 可以获取所需标记的值,这意味着您只需要根节点 并将根节点的所有数据存储在字典中并进行处理 供进一步使用的词典 你可以这样做
- (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", } ] }, ]