**我有一次在一次解析中收到了168416个字节。
-(void)getConnector // PESQUISA
{
NSMutableURLRequest *getJson = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", urlEntra]]];
[getJson setHTTPMethod:@"GET"];
[getJson addValue:@"getValues" forHTTPHeaderField:@"METHOD"];
receivedData = [NSMutableData data];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:getJson delegate:self];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[receivedData appendData:data];
}
使用JSON可以获得多少数据? 我收到了错误的JSON数据吗?
当我有“一些”数据时,它工作正常,但是当我有大量数据时,我无法接收,因为它有部分而JSON不能识别为单个数据。
这是我的JSON(JSONDictionaryExtensions):
NSData *receivedData = data;
NSDictionary *dictionary = [NSDictionary dictionaryWithJSONData:data];
以下是收到的数据:
NSLog(@"Dados JSON:\n%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
良好的数据样本:
2013-11-21 09:10:03.916 APP [38296:70b] Dados JSON: { “nrAutenticacao1”: “120360136”, “dtAutenticacao1”: “20/12/12”, “nrOrdem1”: “5”, “dsLivro1”: “DIARIO”, “nrAutenticacao2”: “080285899”, “dtAutenticacao2”:” 11/09/08" , “nrOrdem2”: “4”, “dsLivro2”: “DIARIO”, “nrAutenticacao3”: “070212953”, “dtAutenticacao3”: “30/07/07”, “nrOrdem3”: “3” “dsLivro3”: “DIARIO”, “nrAutenticacao4”: “070212970”, “dtAutenticacao4”: “30/07/07”, “nrOrdem4”: “2”, “dsLivro4”: “DIARIO”, “nrAutenticacao5”:” 070212961" , “dtAutenticacao5”: “30/07/07”, “nrOrdem5”: “1”, “dsLivro5”: “DIARIO”, “numLivros”:5}
2013-11-21 09:10:03.917 APP [38296:70b] Recebidos 495 bytes de dados。
2013-11-21 09:10:03.917 APP [38296:70b]字典:{ dsLivro1 = DIARIO; dsLivro2 = DIARIO; dsLivro3 = DIARIO; dsLivro4 = DIARIO; dsLivro5 = DIARIO; dtAutenticacao1 =“20/12/12”; dtAutenticacao2 =“11/09/08”; dtAutenticacao3 =“30/07/07”; dtAutenticacao4 =“30/07/07”; dtAutenticacao5 =“30/07/07”; nrAutenticacao1 = 120360136; nrAutenticacao2 = 080285899; nrAutenticacao3 = 070212953; nrAutenticacao4 = 070212970; nrAutenticacao5 = 070212961; nrOrdem1 = 5; nrOrdem2 = 4; nrOrdem3 = 3; nrOrdem4 = 2; nrOrdem5 = 1; numLivros = 5; }
错误的数据样本:
2013-11-21 09:00:22.272 APP [38296:70b] Dados JSON: { “nrAutenticacao1”: “980367425”, “dtAutenticacao1”: “25/08/98”, “nrOrdem1”: “7”, “dsLivro1”:“ATA DE REUNIAO DE DIRETORIA”, “nrAutenticacao2”: “080363784”, “dtAutenticacao2”: “18/12/08”, “nrOrdem2”: “9”, “dsLivro2”: “BALANCO”, “nrAutenticacao3”: “070179557”, “dtAutenticacao3” : “22/06/07”, “nrOrdem3”: “8”, “dsLivro3”: “BALANCO”, “nrAutenticacao4”: “060260726”, “dtAutenticacao4”: “06年5月10日”, “nrOrdem4”:” 7" , “dsLivro4”: “BALANCO”, “nrAutenticacao5”: “050206966”, “dtAutenticacao5”: “23/08/05”, “nrOrdem5”: “6”, “dsLivro5”: “BALANCO”, “nrAutenticacao6” : “040043258”, “dtAutenticacao6”: “04年11月3日”, “nrOrdem6”: “5”, “dsLivro6”: “BALANCO”, “nrAutenticacao7”: “030152879”, “dtAutenticacao7”:「16/10 / 03" , “nrOrdem7”: “4”, “dsLivro7”: “BALANCO”, “nrAutenticacao8”: “030152860”, “dtAutenticacao8”: “16/10/03”, “nrOrdem8”: “3”, “dsLivro8” : “BALANCO”, “nrAutenticacao9”: “030152852”, “dtAutenticacao9”: “16/10/03”, “nrOrdem9”: “2”, “dsLivro9”: “BALANCO”, “nrAutenticacao10”: “030152844”,” dtAutenticacao10 “:” 16/10/03" , “nrOrdem10”: “1”, “dsLivro10”: “BALANCO”, “nrAutenticacao11”: “990032957”, “dtAutenticacao11”: “30/03/99”, “nrOrdem11” : “3”, “dsLivro11”:“CAIXA PAGAMENTO “ ”nrAutenticacao12“: ”990032965“, ”dtAutenticacao12“: ”30/03/99“, ”nrOrdem12“: ”2“, ”dsLivro12“:” CAIXA PAGAMENTO “ ”nrAutenticacao13“:” 980306
......(很多数据)......
2013-11-21 09:00:22.585 APP [38296:70b] Dados JSON: / 06/98“,”nrOrdem419“:”1“,”dsLivro419“:”DIARIO AUXILIAR ESTOQUE”, “numLivros”:419}
2013-11-21 09:00:22.585 APP [38296:70b] Recebidos 81 bytes de dados。
2013-11-21 09:00:22.586 APP [38296:70b] 错误域= NSCocoaErrorDomain代码= 3840“操作不能 完成。 (可可错误3840.)“(JSON文本没有以数组或 允许片段未设置的对象和选项。)UserInfo = 0x9d610a0 {NSDebugDescription = JSON文本不是以数组或对象开头的 允许片段未设置的选项。}
2013-11-21 09:00:22.587 APP [38296:70b]字典:(null)
答案 0 :(得分:1)
您的问题未与JSON相关联。您的问题是由于数据来自单独的块并且您尝试将每个块解析为单个JSON对象这一事实引起的。
您必须将数据块加入一个NSData
对象(-[NSMutableData appendData:]
)和然后使用JSON解析器来解析它们。
答案 1 :(得分:0)
如果您从网站获取此JSON,请将该网址复制到http://jsonlint.com以验证它。
然后尝试使用NSJSONSerialization而不是JSONDictionaryExtensions。
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data
options:0
error:&error];
如果可以,那么问题在于JSONDictionaryExtensions,所以你可以联系提供它的github上的开发人员。