繁体   English   中英

从在线URL到Java列表中读取格式化数据的最佳方法

[英]Best way to read formatted data from online URL to lists in Java

我正在尝试从此链接读取以下输入: https : //www.cryptopia.co.nz/api/GetMarket/ETH_BTC

{"Success":true,"Message":null,"Data":{"TradePairId":5203,"Label":"ETH/BTC","AskPrice":0.05711848,"BidPrice":0.05703892,"Low":0.05500000,"High":0.05733556,"Volume":1243.83039158,...

我需要提取“ TradePairId”,我可以通过用逗号分隔获取的字符串并将其放入列表中来做到这一点,但这将是一个丑陋的解决方案,因为它是带有list.get(2)的一维列表

""Data":{"TradePairId":5203"

我怎样才能干净整洁地分析整个1行列表以及其中的另一个列表,并以“正确”的方式访问其内容?

到目前为止,我所拥有的只是以下内容(丑陋的方式并不能完全读取应有的全部数据):

    URL tickerHistory = new URL("https://www.cryptopia.co.nz/api/GetMarket/" + currencyPair.toString());
    URLConnection yc = tickerHistory.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
    String inputLine = in.readLine();
    List<String> tempList = Arrays.asList(inputLine.split(","));

您正在以完全错误的方式进行操作。 大括号中的数据为JSON格式,因此应解释为! 用逗号分隔字符串不是正确的方法。 我强烈建议阅读以下内容,以了解我在说什么:

https://www.w3schools.com/js/js_json_intro.asp

对我来说,更好的方法是使用OkHttp发出http请求,使用Gson编码/解码JSON对象。

有很多库可以帮助您完成这项工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM