我想放置“速度”到JsonArray使用GSON,但它不工作,有人可以告诉我如何此JSON进入一个地图,或在Java中使用GSON排序的数组的东西?
{
"success": true,
"timestamp": 1548277447,
"base": "USD",
"date": "2019-01-23",
"rates": {
"AED": 3.673021,
"ARS": 37.537301,
"AUD": 1.400099,
"BGN": 1.717902,
"BRL": 3.7657,
"BWP": 10.52802,
"CAD": 1.334645,
"CHF": 0.994703,
"CLP": 671.898015,
"CNY": 6.791896,
"COP": 3151.5,
"DKK": 6.559594,
"EGP": 17.891044,
"EUR": 0.878542,
"GBP": 0.76529,
"HKD": 7.84525,
"HRK": 6.530898,
"HUF": 279.43017,
"ILS": 3.673794,
"INR": 71.13502,
"ISK": 120.350185,
"JPY": 109.595496,
"KRW": 1126.589831,
"KZT": 378.239562,
"LKR": 182.190238,
"LTL": 2.95274,
"LVL": 0.60489,
"LYD": 1.390468,
"MXN": 19.0361,
"MYR": 4.13696,
"NOK": 8.56596
}
}
编辑:添加的代码
HttpURLConnection fixerConnection = (HttpURLConnection) url.openConnection();
fixerConnection.setRequestMethod("GET");
BufferedReader jsonData = new BufferedReader(new InputStreamReader(fixerConnection.getInputStream()));
JsonObject allData = new JsonParser().parse(jsonData).getAsJsonObject();
JsonArray jArray = allData.getAsJsonArray("rates");//getAsJsonObject("symbol");
你会得到这条线在这里的例外:
JsonArray jArray = allData.getAsJsonArray("rates");
因为你可以在你输入文件中看到率是一个JSON对象不是一个JSON阵列。让我告诉你在语法上的区别:
"rates": { "AED": 3.673021, "ARS": 37.537301}
"rates": [ {"AED": 3.673021}, {"ARS": 37.537301}]
在第二种情况,你可以把它作为JSON的JSON数组对象!我建议您阅读的数据类型JSON W3教程
好了现在解决您的输入作为提取所有的东西JSON对象
HttpURLConnection fixerConnection = (HttpURLConnection) url.openConnection();
fixerConnection.setRequestMethod("GET");
BufferedReader jsonData = new BufferedReader(new
InputStreamReader(fixerConnection.getInputStream()));
JsonObject allData = new JsonParser().parse(jsonData).getAsJsonObject();
// Now Take Rates as JSON Object and capture it in a Map.
JsonObject rates = allData.getAsJsonObject("rates");
Set<Map.Entry<String, JsonElement>> entries = rates.entrySet();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句