下面是我在java中使用jackson解析的json字符串
String rspString = "{\"currency\": [{\"USD\": [\"U.S.Dollar\",\"$\"]},\"USD\"]}";
JsonUtil jsonUtil = new JsonUtil();
API1Response configAPI1Rsp = new API1Response();
API1Rsp = (API1Response) jsonUtil.Json2Object(rspString, configAPI1Rsp);
public class API1Response
{
@JsonProperty("Currency")
public List<Currency> currency;
//getters and setters
}
public class Currency()
{
@JsonProperty("USD")
public List<USD> USD
//getters and Setters
}
当我运行上面的代码时,我收到以下错误:
无法从字符串值('USD')实例化类型[simple type,class com.sample.test.Currency]的值;没有单字符串构造函数/工厂方法
在上面的响应字符串中如何处理USD(对象中的最后一个)如何在java中为该对象定义。
先谢谢。
答案 0 :(得分:0)
当您将对象数组转换为Java对象时,Json中的货币键是Object和String的数组。因此,您需要修改json字符串,使其仅包含对象。即第二个元素“USD”不是对象,因此您得到错误“没有单字符串构造函数/工厂方法”。
答案 1 :(得分:0)
@JsonProperty(“Currency”) - 确保“Currency”应为小写,因为它在json字符串中。
答案 2 :(得分:0)
怎么样,
$path = $dir . "/";
和
public class wallet {
List<Currency> currency;
}