当前位置: 首页 > 知识库问答 >
问题:

用java从URL获取Json数组

穆季萌
2023-03-14

我们的中央银行以多种方式提供货币汇率。例如,一个货币日期很容易获得:http://api.nbp.pl/api/exchangerates/rates/a/usd/2020-08-20?format=Json(它以简单的大括号开始{作为典型的Json)

但是另一个表-每个货币日期:http://api.nbp.pl/api/exchangerates/tables/a/2020-08-20?format=json在代码行后返回'null session'

    if (httpURLConnection.getResponseCode() == okRespCode) { ...

尽管这个Json在webrowser中没有任何问题。它以方括号[作为数组]开始。

你遇到过并解决过这样的问题吗?

请从我的iDempierehtml" target="_blank">开发IDE中找到下面的异常堆栈跟踪。

PM org.compiere.process.svrprocess process strich:nullSession java.lang.nosuchfielderror:nullSession at sun.security.ssl.clienthandshaker.getkickstartmessage(clienthandshaker.java:1343),at sun.security.ssl.handshaker.kickstart(handshaker.java:1117),at sun.security.ssl.sslsocketimpl.kickstarthandshake(在sun.net.www.protocol.https.https.abstractDelecteHttpSurlConnection.Connect(httpsClient.java:559)在sun.net.www.protocol.http.http.httpurlConnection.getInputStream0(httpurlConnection.java:1570)在sun.net.www.protocol.http.http.httpurlConnection.getInputStream(httpurlConnection.java:1400)98)在java.net.httpurlconnection.getResponseCode(HttpURLConnection.java:480)在sun.net.www.protocol.https.httpsurlconnectionimpl.getResponsecode(httpsurlconnectionimpl.java:352)在one.stabilis.utils.jsonutils.readJsonToString(jsonutils.java:75)在one.stabilis.utils.jsonutils.readarrayofExchangeRateStable(jsonutils.java:108)在encyrates.java:84)在org.compiere.process.svrprocess.process(svrprocess.java:201)在org.compiere.process.svrprocess.startprocess(svrprocess.java:147)在org.adempiere.util.processsutil.startjavaProcess(processsutil.java:172)在org.adempiere.util.processsutil.startjavaProcess(processsutil.java:139)在Apps.AbstractProcessCTL.StartProcess(AbstractProcessCTL.java:429)at org.compiere.apps.abstractProcessCTL.run(abstractProcessCTL.java:234)在org.adempiere.webui.apps.wprocessCTL.process(wprocessCTL.java:197)在org.adempiere.webui.apps.abstractProcessDialog$processDialogrunnable.dorun(abstractProcessDialog$processDialogrunnable.java:1083)在org.adempiere.util.contextrunnable.run util.concurrent.futureTask.run(FutureTask.java:266)在java.util.concurrent.ScheduleDThreadPoolExecutor$ScheduleDFutureTask.Access$201(ScheduleDThreadPoolExecutor.java:180)在java.util.concurrent.ScheduleDThreadPoolExecutor$ScheduleDThreadPoolExecutor.java:293)在java.util.concurrent.ScheduleDThreadPoolExecutor.run(Thread.java:748)

共有1个答案

怀浩大
2023-03-14

您可以将响应映射为列表 列表 mapperobject>

由于响应本身是一个数组而不是一个对象,因此可以执行如下操作

String responseJson = "some array of objects";
List<CustomMapperObject> rates = objectMapper.readValue(responseJson, 
             ParameterizedTypeReference<List<CustomMapperObject>>() {
});

ResponseEntity<List<CustomMapperObject>> responseObject = 
                       restTemplate.exchange(uri.toUriString(), HttpMethod.GET,
                       httpEntity,
                       new ParameterizedTypeReference<List<CustomMapperObject>>() {
                       });
 类似资料:
  • 问题内容: 我已经签出了很多页面,但是大多数教程和脚本使用这种JSON输出类型返回错误代码。那么,如何才能从Java中的JSON中提取数据? 问题答案: 如果要使用Gson,则首先声明用于容纳每个元素和子元素的类: 然后,声明一个最外层元素的数组(因为在这种情况下,JSON对象是一个JSON数组),并对其进行分配: 然后,您只需访问的元素。 要记住的重要一点是,您声明的属性的名称和类型应与JSON

  • 你好,我来自从URL获取JSON对象 我试着去买一顶帽子- 有人能告诉我我做错了什么吗?

  • 问题内容: 我有一个网址,返回的是这样的JSON对象: 我想获得价值。那么如何通过PHP检索它呢? 问题答案: $json = file_get_contents(‘url_here’); $obj = json_decode($json); echo $obj->access_token; 为此,需要启用它。可以通过在运行时完成以下操作来实现: 您也可以使用获取网址。要使用卷曲,可以使用中发现的

  • 我有一个返回JSON对象的URL,如下所示: 我想从URL获取JSON对象,然后获取值。 那么如何通过PHP检索它呢?

  • 我需要用函数SSJS from mJson()读一个URL。例如Notes View的数据访问API http://{host}/{database}/api/data/collections/name/{name} 我该怎么做? P. S我认为(我不知道是否是真的),如果我使用Java代码(例如类URLReader从这个博客,我失去作者/读者的功能,因为是我的服务器,而不是当前用户执行读取流?