gpt4 book ai didi

java - 使用Gson解析异常Json

转载 作者:行者123 更新时间:2023-12-02 02:44:45 25 4
gpt4 key购买 nike

我正在使用 Java 下载一些信息。我收到以下格式的 JSON:

[[40217657,1498658666000,-0.08537438,2498.9],(...)]

我的问题是我不知道如何构建包装类,因为这个 JSON 没有关键字。

这是我尝试使用的包装类:

package TaskFormats;

public class TaskBitFinexTrades {
private double[] info;
public TaskBitFinexTrades(double[] info) {
super();
this.info = info;
}
public double[] getInfo() {return info;}
public void setInfo(double[] info) {this.info = info;}
@Override
public String toString() {
return "[TimeStamp:" + info[1] + ",Id:" + info[0] + ",amount:" + info[2] + ",price:" + info[3] ;
}

}

这是我尝试使用 Gson 的方式

public void loadBitFinexTrades(){
String url = "https://api.bitfinex.com/v2/trades/tBTCUSD/hist/?limit=1000";
String json="";
try{
json = conecction(url);
System.out.println(json);
} catch (Exception e) {e.printStackTrace();}
if(json!=""){
Gson gson = new Gson();
Type type = new TypeToken<List<TaskBitFinexTrades>>() {}.getType();
List<TaskBitFinexTrades> fromJson = gson.fromJson(json, type);
for (TaskBitFinexTrades task : fromJson) {
System.out.println(task);
}
}
}

任何帮助将不胜感激。

最佳答案

你拥有的是数组的 JSON 数组,而不是对象。不要尝试从 JSON 读取对象,而是阅读 double[][]并手动重建你的对象。

下面的代码是临时编写的,为了表明我的观点,还没有尝试过,可能需要一些调整

Gson gson = new Gson();
double[][] infos = gson.fromJson(json, double[][].class);
List<TaskBitFinexTrades> result = Lists.newArrayList(); //see: guava
for (double[] info: infos)
result.add(new TaskBitFinexTrades(info));
for (TaskBitFinexTrades task : result) {
System.out.println(task);
}

关于java - 使用Gson解析异常Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805347/

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