Gilthoniel:
私は間違った用語を使用していますので、もし私がJSONに精通していないです、申し訳ありませんそのため。
私はこのURLを持っているので。
final String PRICE_TRY_URL = "https://api.coindesk.com/v1/bpi/currentprice/try.json";
そして、それはこのようなものを返します。
書式設定されたJSONデータ
{
"time":{ },
"disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
"bpi":{
"USD":{
"code":"USD",
"rate":"6,911.7500",
"description":"United States Dollar",
"rate_float":6911.75
},
"TRY":{
"code":"TRY",
"rate":"35,738.0058",
"description":"Turkish Lira",
"rate_float":35738.0058
}
}
}
私がやりたいすべてはリーチTRYのレートです。私は以下のコードでそのデータを取得します。
public void doNetworking(){
AsyncHttpClient client=new AsyncHttpClient();
client.get(PRICE_TRY_URL, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d("BitcoinTracker","Succes in doNetworking");
// byte[] responseBody can be parsed to a json object.
parseJson(responseBody);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.e("BitcoinTracker", "Fail " + error.toString());
}
}
);
そして、ここで私の方法は次のとおりです。
public void parseJson(byte[] responseBody){
try {
JSONObject bitcoinJson =new JSONObject(new String(responseBody));
String currency= bitcoinJson.getString("bpi");
Log.d("bitcoinmanager",currency);
} catch (JSONException e) {
Log.d("BitcoinPrice","BitcoinPriceManager onSucces converting json from byte[] failed.");
e.printStackTrace();
}
}
私はこの文を使用する上で、あなたが見ることができるように。
String currency= bitcoinJson.getString("bpi");
そして、この文で、私はTRYのレートである私の先のポイントに到達することはできません。どのように私は、テキストをフォーマットされたJSONにナビゲートすることができますか?
注:私は、私の質問が明確であることを確認するために取得したJSONデータ部分を追加し、それはあまりない願っています。
エサンMashhadi:
あなたはGsonライブラリでこのコードを使用することができます:
client.get(PRICE_TRY_URL, new TextHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, String res) {
// called when response HTTP status is "200 OK"
JsonParser jsonParser = new JsonParser();
JsonObject jsonObject = (JsonObject) jsonParser.parse(responseBodyString);
JsonObject bpi = jsonObject.get("bpi").getAsJsonObject();
JsonObject tryObject = bpi.get("TRY").getAsJsonObject();
String rate = tryObject.get("rate").getAsString();
}
@Override
public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}
}
);
例はここにありますhttps://github.com/codepath/android_guides/wiki/Using-Android-Async-Http-Client