gpt4 book ai didi

java - Gson解析器无法从数组创建对象

转载 作者:行者123 更新时间:2023-11-30 08:04:50 26 4
gpt4 key购买 nike

我正在尝试编写一个 Gson 解析器来从 JMS 消息创建 POJO。消息以文本格式传递,样式如下:

{  
"priceUpdate":[
{
"symbol":"EUR/USD",
"entryType":"0",
"price":"1.09286"
},
{
"symbol":"EUR/USD",
"entryType":"1",
"price":"1.0929"
}
]
}

我试图为数组中的每个项目创建 Pojo 对象,但当我尝试解析时代码失败:

public void consumeMessage(String text) {
try {
PriceUpdateTypeDTO updates = gson.fromJson(text,PriceUpdateTypeDTO.class);
for (PriceUpdateItemDTO u : updates.items) {
if (u.getEntryType() == "0") {
connectedMarket.setBidPrice(Double.parseDouble(u.getPrice()));
} else {
connectedMarket.setOfferPrice(Double.parseDouble(u.getPrice()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

在 Tomcat 服务器上运行时得到 NullPointer

java.lang.NullPointerException
at com.markets.ticker.PriceStreamClient.consumeMessage(PriceStreamClient.java:25)

这是我的 POJO 类:

public class PriceUpdateTypeDTO {


private ArrayList<PriceUpdateItemDTO> items;
//getter & setter
}


public class PriceUpdateItemDTO {

private String symbol;

private String entryType;

private String price;
//getters & setters
}

最佳答案

PriceUpdateTypeDTO 中的 ArrayList 名称需要与 JSON 中的数组具有相同的名称:

改变

 private ArrayList<PriceUpdateItemDTO> items;

 private ArrayList<PriceUpdateItemDTO> priceUpdate;

反之亦然(将 JSON 中的数组名称更改为“items”)

关于java - Gson解析器无法从数组创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31273634/

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