获得以下错误没有单字符串构造函数/工厂方法

时间:2016-10-25 12:17:55

标签: java json jackson

下面是我在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中为该对象定义。

先谢谢。

3 个答案:

答案 0 :(得分:0)

当您将对象数组转换为Java对象时,Json中的货币键是Object和String的数组。因此,您需要修改json字符串,使其仅包含对象。即第二个元素“USD”不是对象,因此您得到错误“没有单字符串构造函数/工厂方法”。

答案 1 :(得分:0)

@JsonProperty(“Currency”) - 确保“Cu​​rrency”应为小写,因为它在json字符串中。

答案 2 :(得分:0)

怎么样,

$path  = $dir . "/";

public class wallet {
    List<Currency> currency;
}