ので、ここであなたが戻って取得JSONです。
{
"batchcomplete": "",
"query": {
"normalized": [{
"from": "pizza",
"to": "Pizza"
}],
"pages": {
"24768": {
"pageid": 24768,
"ns": 0,
"title": "Pizza",
"extract": "Pizza is a yeasted flatbread generally topped with tomato sauce and cheese and baked in an oven. It is commonly topped with a selection of meats, vegetables and condiments. The term was first recorded in the 10th century, in a Latin manuscript from Gaeta in Central Italy. The modern pizza was invented in Naples, Italy, and the dish and its variants have since become popular and common in many areas of the world.\nIn 2009, upon Italy's request, Neapolitan pizza was safeguarded in the European Union as a Traditional Speciality Guaranteed dish. The Associazione Verace Pizza Napoletana (the True Neapolitan Pizza Association) is a non-profit organization founded in 1984 with headquarters in Naples. It promotes and protects the \"true Neapolitan pizza\".\nPizza is sold fresh or frozen, either whole or in portions, and is a common fast food item in Europe and North America. Various types of ovens are used to cook them and many varieties exist. Several similar dishes are prepared from ingredients commonly used in pizza preparation, such as calzone and stromboli."
}
}
}
}
ここでは、(切り捨てられた)Javaクラスがあります。
public class WikiInfo {
private String name;
private String extract;
}
Retrofitはここで設定したGsonにJSON処理を委任します。
private Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
それはあなたがそのJSONの外に欲しいものを知ってしようとしている問題を抱えており、それは単にあなたがresponse["query"]["pages"]
を望んで知ることができない、そして、ページID #24768
、およびそれとは"title"
と"extract"
。
ので、解決策は、車輪の再発明しないでくださいいずれか
- です。 Wikipedia用の妥当なJava APIを見つけたり、既存のRetrofit Wikipediaサンプルが存在するかどうかを確認してください。 (例えば、WikiLightを参照してください)
- あなたが持っているものを続けますが、あなたの
WikiInfo
クラスを適切に実装する方法についていくつかの調査を行います。これを始めるにはGsonのドキュメントを参照してください。しかし、Map<String, Page> page
のオブジェクトは良いスタートになります。その後Page.java
は改造が*私のWikiInfoのオブジェクトフィールドにJSONのフィールドをマップする方法を知ってどのように* private String title, extract;
が含まれている - それは、そのGsonに委任する。それに応じてJavaオブジェクトクラスにアノテートする必要があります。 –
あなたはmResponseメソッドを返しています。あなたはコールが非同期であることを理解する必要があります。コールバックを持っていることの全体的なポイントです – njzk2
そうです!ニースキャッチ:)私は理解する。しかし、現在の問題は、受け取ったresponse.body()が私が期待したものを含んでいないということです(受け入れられた答えのコメントを参照)。 –