2015-08-03 2 views
0

Я имею следующий ответ JSON от Google Speech APIАнализировать Google Speech Kit JSON в прошивкой

{ 
    "result": [ 

    ] 
}{ 
    "result": [ 
     { 
      "alternative": [ 
       { 
        "transcript": "testing 123" 
       }, 
       { 
        "transcript": "listing 123" 
       }, 
       { 
        "transcript": "casting 123" 
       }, 
       { 
        "transcript": "fasting 123" 
       }, 
       { 
        "transcript": "listing 1 2 3" 
       }, 
       { 
        "transcript": "Justin 123" 
       }, 
       { 
        "transcript": "listening 123" 
       }, 
       { 
        "transcript": "listen 123" 
       } 
      ], 
      "final": true 
     } 
    ], 
    "result_index": 0 
} 

Однако у меня возникли трудности при разборе ответа JSON. У меня есть следующий код

Первый подход: я получаю пустой результат, когда я пытаюсь напечатать

NSDictionary *results = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableContainers error:nil]; 
NSDictionary *resultsDictionary = [[results objectForKey:@"result"] objectAtIndex:0]; 
    NSLog(@"result %@", resultsDictionary); 

Второй подход: получение такой же пустой результат, когда я пытаюсь напечатать

NSError* error; 
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data 
                options:kNilOptions 
                 error:&error]; 

NSArray* ResultArray = [json objectForKey:@"result"]; 

NSLog(@"result: %@", ResultArray); 

Рекомендуем также когда я пытаюсь подтвердить ответ JSON через http://jsonlint.com/, я получаю следующее сообщение

Parse error on line 5: 
...: [   ]}{ "result": [ 
--------------------^ 
Expecting 'EOF', '}', ',', ']' 

ответ

0

Ваш ответ не в правильном формате json. Сначала добавьте строку ниже, чтобы удалить лишнюю пустую строку результата по следующей строке:

yourJsonString = [yourJsonString stringByReplacingOccurrencesOfString:@"{\"result\":[]}" withString:@""]; 

Затем Попробуйте следующий код:

yourJsonString = [yourJsonString stringByReplacingOccurrencesOfString:@"{\"result\":[]}" withString:@""]; 

    NSData* jsonData = [yourJsonString dataUsingEncoding:NSUTF8StringEncoding]; 

    NSError *error = nil; 
    NSDictionary *responseObj = [NSJSONSerialization 
           JSONObjectWithData:jsonData 
           options:0 
           error:&error]; 

    if(! error) { 
     NSArray *responseArray = [responseObj objectForKey:@"result"]; 
     for (NSDictionary *alternative in responseArray) { 
      NSArray *altArray = [alternative objectForKey:@"alternative"]; 
      for (NSDictionary *transcript in altArray) { 
       NSLog(@"transcript : %@",[transcript objectForKey:@"transcript"]); 
      } 
     } 

    } else { 
     NSLog(@"Error in parsing JSON"); 
    }