Cyb*_*erK 0 iphone xcode json objective-c ios
我有一个json:
[
{
"id" : 42422422,
"created" : 1329684013,
"name" : "Test"
},
{
"id" : 42422423,
"created" : 1329684015,
"name" : "Test 123"
},
{
...
}
]
Run Code Online (Sandbox Code Playgroud)
解析这个问题,但是当网络服务器出错时,会返回此JSON:
{
"error" : {
"code" : "511",
"message" : "JSON error",
"extra" : {
"some" : "text",
"someextra" : "text"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试过用这个:
if ([jsonArray valueForKey:@"error"] != nil) {
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为如果我输出的值是'null'的数组
我怎么检查这个?(我知道我可以使用NSRange,但我认为必须有更好的方法吗?
我像这样解析JSON:
NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error: &e];
Run Code Online (Sandbox Code Playgroud)
responseData来自NSURLConnection的connectionDidFinishLoading方法.
你应该先检查你的结果是数组还是字典.
if ([jsonArray isKindOfClass:[NSArray class]]) {
//process results
} else if ([jsonArray isKindOfClass:[NSDictionary class]]) {
NSDictionary *errorInfo = [(NSDictionary *)jsonArray objectForKey:@"error"];
//handle error...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3675 次 |
| 最近记录: |