我正在学习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",
}
] }, ]
答案 0 :(得分:1)
你可以这样做
但是你应该知道动态键的含义/目的。如果你没有钥匙的意义/目的,这些步骤可能无法帮助你......祝你好运。
答案 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)
对于这种类型的案例,你可以获得字典和字典 可以获取所需标签的值意味着您只需要根节点 并将根节点存储在字典中的所有数据并处理它 字典供进一步使用..