gpt4 book ai didi

ios - 在iOS中解析Google翻译JSON

转载 作者:行者123 更新时间:2023-12-01 18:16:29 24 4
gpt4 key购买 nike

从Google Translate解析JSON的最佳方法是什么。

到目前为止,我有:

NSString *urlText = [NSString stringWithFormat:@"https://www.googleapis.com/language/translate/v2?key=%@&target=%@&q=%@",
key, target, selectedWord];

NSLog(@"%@", urlText);

NSURL *url = [NSURL URLWithString:urlText];


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:url];
[request setHTTPMethod:@"GET"];

NSURLResponse *response;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

结果是:
{
"data": {
"translations": [
{
"translatedText": "Provincial capital",
"detectedSourceLanguage": "de"
}
]
}

}

然后我:
if(data != nil){
NSDictionary *dic = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&error];
NSArray *dataObj = dic[@"data"];

NSLog(@"%@", dataObj);
}
else {
NSLog(@"ERR");
}

产生:
{
translations = (
{
detectedSourceLanguage = de;
translatedText = "Provincial capital";
}
);
}

然后,我该如何从检测到的SourceLanguage中获取“de”,并从translationText中获取“省会”?
我尝试创建第二个数组:
NSArray *arr2 = [dataObj valueForKey:@"detectedSourceLanguage"];

没有成功

最佳答案

调用dic[@"data"];会给您一个字典,而不是数组。因此,您需要:

NSDictionary *data = dic[@"data"];

现在您需要翻译数组:
NSArray *translations = data[@"translations"];

那是一系列字典:
for (NSDictionary *translation in translations) {
NSString *detectedLanguage = translation[@"detectedSourceLanguage"];
NSString *translatedText = translation[@"translatedText"];
}

一次将问题分解成一步即可获得所需的数据。

关于ios - 在iOS中解析Google翻译JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21505222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com