gpt4 book ai didi

java - 在 Json 中导航 (Java)

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:34 24 4
gpt4 key购买 nike

我不熟悉 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
}
}
}

我只想达到土耳其里拉的汇率。我使用以下代码获取该数据。

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 数据部分以确保我的问题很清楚,希望它不会太多。

最佳答案

如果您使用的是 Android,则无需使用任何外部设备:

JSONObject bitcoinJson = new JSONObject(responseBody);
JSONObject bpi = bitcoinJson.getJSONObject("bpi");
JSONObject tr = bpi.getJSONObject("TRY");
String rate = tr.getString("rate");

在问题被标记为 Android 之前,使用 org.json.simple 库的原始答案:

JSONObject bitcoinJson = (JSONObject)new JSONParser().parse(new String(responseBody));
JSONObject bpi = (JSONObject)bitcoinJson.get("bpi");
JSONObject tr = (JSONObject)bpi.get("TRY");
String rate = (String)tr.get("rate");

请注意,与其构造一个字符串以传递给 JSONParser,不如让它直接访问 Reader 更有效。

关于java - 在 Json 中导航 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51709978/

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