[英]iOS Error Parsing JSON
I am new to iOS. 我是iOS新手。 I have this JSON data that I needed to parse: 我有需要解析的JSON数据:
{
"allseries":[
{
"type":"HR",
"title":"Heart Rate",
"xLabel":"Time",
"yLabel":"Beats per Min",
"defaultUnit":"BPM",
"url":"info/info?user=admin%40korrent.com&type=HR",
"size":18,
"firstTs":1406755651,
"lastTs":1406841254
},
{
"type":"TEMP",
"title":"Temperature",
"xLabel":"Time",
"yLabel":"Temperature",
"defaultUnit":"F",
"url":"info/info?user=admin%40korrent.com&type=TEMP",
"size":6,
"firstTs":1406854147,
"lastTs":1406854283
}
],
"status":"OK"
}
So far this is my code: 到目前为止,这是我的代码:
NSString *dataReceived= [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];
NSLog(@"--> async response data (string): %@", dataReceived);
NSData *jsonData = [dataReceived dataUsingEncoding:NSUTF8StringEncoding];
NSError *jsonError;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&jsonError];
NSLog(@"JSON key and value %@", [dict description]);
NSLog(@" %@ ", dict[@"allseries"]);
NSString *jsonString=dict[@"allseries"];
if (_programState == 4){
NSLog(@"state is 4");
NSLog(@"%@",jsonString);
NSData *Data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
However, the code throws invalid argument exception for this line: 但是,代码为此行抛出无效的参数异常:
NSData *Data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
Further more, jsonString seems totally "inoperable". 更进一步,jsonString似乎完全“无法操作”。 I cannot split it, append strings to it etc. So what's wrong? 我无法拆分它,不能将字符串追加到它等。那怎么了?
// The following two lines are just for logging and otherwise are not needed.
NSString *dataReceived= [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];
NSLog(@"--> async response data (string): %@", dataReceived);
// Deserialize the JSON data into a dictionary
NSError *jsonError;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData: _responseData options:nil error:&jsonError];
NSLog(@"JSON key and value %@", dict);
// Get the array from the dictionary element "allseries".
NSArray *jsonArray = dict[@"allseries"];
NSLog(@"jsonArray: %@", jsonArray);
Here jsonArray
is the array of dictionaries for "allseries" from the JSON 这里jsonArray
是JSON中“ allseries”的字典数组
What you did is totally, totally wrong. 您所做的是完全错误的。
dict[@allseries] is not an NSString. dict [@allseries]不是NSString。 It is an NSArray with two elements, and both its elements are NSDictionary. 它是一个具有两个元素的NSArray,并且两个元素都是NSDictionary。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.