如何从Json获取货币?

时间:2019-07-07 20:12:10

标签: java json gson

我想使用Gson从Json获取货币,但是我的方法返回null。货币值应为BigDecimal对象,我想使用货币符号作为方法参数来获取该值。

我创建了如下所示的方法rateFromApi(字符串货币)。我已经阅读了API并从我的理解

rate = rootObj.get(currency).getAsBigDecimal();

应为可变汇率分配货币名称所映射的值。 我已经发现类似的问题here 但是我仍然不明白我在代码中做错了什么。

//fields and method in class responsible for getting data from Json
private final String sURL = "http://data.fixer.io/api/latest?access_key...";
    private URL url = new URL(sURL);
    private URLConnection request = url.openConnection();
    private JsonParser jp = new JsonParser();

public BigDecimal rateFromAPI(String currency) throws IOException {
        request.connect();
        BigDecimal rate;
        JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent()));
        JsonObject rootObj = root.getAsJsonObject();
        return rate = rootObj.get(currency).getAsBigDecimal();
    }


//expression in method main
//indicate which exactly currency has to be taken from Json
Zloty pln1 = eur.convertToPln(ratesGetter.rateFromAPI("PLN"));

我认为可以通过使用行rootObj.get(currency).getAsBigDecimal();来解析Json 映射到货币名称的值将作为BigDecimal分配给可变汇率,但我得到的结果是返回行中的NullPointerException。

0 个答案:

没有答案