[英]Store App names in NSArray from JSON DATA which Stored in NSDictionary
我已經檢索了以下已成功存儲在NSDictionary
中的JSON
格式的響應表Server。
{
"@companyName" = "MobileAPPSDeveloper";
"@generatedDate" = "8/6/13 2:41 AM";
"@version" = "1.0";
application = (
{
"@apiKey" = 234FXPQB36GHFF2334H;
"@createdDate" = "2013-03-01";
"@name" = FirstApp;
"@platform" = iPhone;
},
{
"@apiKey" = 3PF9WDY234546234M3Z;
"@createdDate" = "2013-02-01";
"@name" = SecondAPP;
"@platform" = iPhone;
},
{
"@apiKey" = NXGQXM2347Y23234Q4;
"@createdDate" = "2013-05-22";
"@name" = ThirdApp;
"@platform" = Android;
}
);
}
這是我使用的方法。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[self convertDataIntoDictionary:responseData];
}
-(void)convertDataIntoDictionary:(NSData*)data{
NSDictionary *dictionary;
if (data.length>0) {
NSError *parsingDataError;
dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&parsingDataError];
if (parsingDataError) {
// [ErrorAlert showError:parsingDataError];
NSString *recievedString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Data Conversion Error When Parsing: %@", recievedString);
}
}
NSLog(@"Data back from server\n %@",dictionary);
NSArray *applicationDetails = dictionary[@"application"];
}
我不能再走了嗎?
我想在數組中獲取APPS的全名。
任何幫助將不勝感激。
解析JSON的基礎是:
{}-dis代表字典
()-dis代表數組
因此,在JSON
,根目錄有一個dictionary
, dictionary
內部有一個密鑰application
,它包含一個Array
。
NSArray *applicationArray = [dictionary objectForKey:@"application"];
NSMutableArray *mutableAppNamesArray = [[NSMutableArray alloc]init];
在此數組內,每個索引都有三個NSDictionary
:
for(NSDictionary *dict in applicationArray){
NSString *appName = [dict objectForKey:@"@name"];
NSLog(@"app name : %@", appName);
[mutableAppNamesArray addObject:appName];
}
NSArray * appNamesArray = [NSArray arrayWithArray:mutableAppNamesArray];
我認為這不是JSON的正確格式。 JSON對象通常包含“:”而不是“ =”
例子:-
{
products_id: "476",
products_model: "XOLO Play",
products_price: "15499.0000",
products_image: "xolo-play-play-t1000-.jpg",
products_date_available: null,
products_last_modified: "2013-08-04 06:04:11",
products_date_added: "2013-08-04 06:03:10",
manufacturers_id: "17",
products_status: "1",
products_rating: null,
category_id: "11"
},
{
products_id: "18",
products_model: "Nokia Lumia 820",
products_price: "8990.0000",
products_image: "samsung-galaxy-ace-duos-gsm-mobile-phone-large-1.jpg",
products_date_available: null,
products_last_modified: "2013-07-30 03:45:28",
products_date_added: "2013-01-23 00:52:00",
manufacturers_id: "2",
products_status: "1",
products_rating: "3",
category_id: "11"
},
但是,如果仍然需要解析它,則可以嘗試如下操作:
首先通過NSDictionary *array = [allValues objectForKey:@"application"];
進入數組NSDictionary *array = [allValues objectForKey:@"application"];
然后將每個索引指向NSDictionary,然后為密鑰對象。 如果它是您的服務器響應,則嘗試使其使用正確的JSON格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.