我正在使用 http 請求制作一個簡單的應用程式。我設法從第一個 API(谷歌翻譯)中取回了結果。但是我無法從第二個中得到任何結果。
我試圖獲得結果的 API:
https://tr.wikipedia.org/w/api.php?action=query&prop=description&format=json&titles=masa
輸出是:
{
"batchcomplete": "",
"query": {
"normalized": [
{
"from": "masa",
"to": "Masa"
}
],
"pages": {
"219000": {
"pageid": 219000,
"ns": 0,
"title": "Masa",
"description": "\u00fcst\u00fc d\u00fcz mobilya",
"descriptionsource": "central"
}
}
}
}
正如您每次請求“pageid”更改時所見,我無法為此 JSON 宣告任何鍵。
我的顫振代碼:
var transurl = Uri.parse(
'https://translation.googleapis.com/language/translate/v2?key=AIzaSyCZ**YCKlw');
var response = await http.post(transurl,
body: {'q': sonuc, 'source': 'en', 'target': 'tr', 'format': 'text'});
if (response.statusCode == 200) {
var harita = jsonDecode(utf8.decode(response.bodyBytes)) as Map;
var ceviri = harita['data']['translations'].last['translatedText'];
print(ceviri);
var wikiurl = Uri.parse(
'https://tr.wikipedia.org/w/api.php?action=query&prop=description&format=json&titles=$ceviri');
var wikii = await http.post(wikiurl, body: {});
print(wikii);
var wikibilgi = jsonDecode(utf8.decode(wikii.bodyBytes)) as Map;
var wikiii = (wikibilgi['query']['pages']); //Don't know what to write here.
//Don't know what to write here.
print(wikiii);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
BilgiEkrani(sonuc: sonuc, oran: oran, wikibilgi: wikiii)));
} else {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text("GOOGLE TRANSLATE API HATASI"),
duration: const Duration(seconds: 2)));
}
}
uj5u.com熱心網友回復:
您可以通過以下方式獲取地圖的第一個鍵(您的 pageid):
var wikipageId = wikibilgi['query']['pages'].keys.toList()[0];
要獲取內容,您只需使用該密鑰即可。
var wikiii = wikibilgi['query']['pages'][wikipageId];
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/375651.html
