【发布时间】:2021-10-06 17:47:38
【问题描述】:
所以我有这个包含 ff 的变量 specCifDetailsReturn。有效载荷
[
{"ax21:cHType":"S",
"ax21:cardNumber":4***********7126,"ax21:returnCde":"00",
"ax21:cancelCode":"",
"ax21:vipCode":"",
"ax21:custrNbr":"0*****3426"},
{"ax21:cHType":"S",
"ax21:cardNumber":4***********3038,"ax21:returnCde":"00",
"ax21:cancelCode":"H",
"ax21:vipCode":"",
"ax21:custrNbr":"0*****3426"}
]
还有 ff。模型类从数组中提取我需要的参数
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonNaming(PropertyNamingStrategy.UpperCamelCaseStrategy.class)
public final class SpecCifInfo {
@JsonAlias("ax21:cHType")
private String cHType;
@JsonAlias("ax21:cardNumber")
private String cardNumber;
}
我正在尝试将其转换为 Java ArrayList,以便循环进入它并找到卡号。但是由于某种原因,即使 specCifDetailsReturn 变量有值,它总是在日志上抛出一个空值。下面是我的代码的 sn-p。
Gson gson = new Gson();
Type type = new TypeToken<List<SpecCifInfo>>(){}.getType();
ArrayList<SpecCifInfo> specDetails = gson.fromJson(specCifDetailsReturn.toString(),type);
for (SpecCifInfo specInfo : specDetails){
LOGGER.debug("Spec CIF Details", specInfo.getCHType() + "-" + specInfo.getCardNumber());
}
【问题讨论】:
-
嗨 Joshua,这可能是某个地方的小问题。我尝试了您的代码 sn-p 和示例数据,它工作正常。也许你可以检查'Gson'版本,我用的是2.8.8。
-
我添加了空 SpecCifInfo 对象的屏幕截图,即使我更改为 2.8.8,日志中仍然为空:/
-
我的第一个想法是:那些卡号不可能是有效的json。这些必须被引用。