列出一份清单<;列表<;BigDecimal>&燃气轮机;在Java中使用Jackson的drom json值

列出一份清单<;列表<;BigDecimal>&燃气轮机;在Java中使用Jackson的drom json值,java,json,parsing,jackson,Java,Json,Parsing,Jackson,我得到了这个json: {"channel":"123","data":"[[\"7132.09114\",\"0.00800000\"],[\"7131.71462\",\"0.08900000\"],[\"7122.94432\",\"0.75000000\"],[\"7122.87085\",\"0.20000000\"],[\"7122.38788\",\"0.00300000\"]]","event":"updated"} 如何从“数据”值生成List?我试图在readValue()

我得到了这个json:

{"channel":"123","data":"[[\"7132.09114\",\"0.00800000\"],[\"7131.71462\",\"0.08900000\"],[\"7122.94432\",\"0.75000000\"],[\"7122.87085\",\"0.20000000\"],[\"7122.38788\",\"0.00300000\"]]","event":"updated"}
如何从“数据”值生成List>?我试图在readValue()中使用TypeReference获取它,但我得到了NPE,因为该数组位于“”中

保存数据的类:

public class Result {
    @JsonProperty("channel")
    private String channel;
    @JsonProperty("data")
    private List<List<BigDecimal>> data;
}
公共类结果{
@JsonProperty(“频道”)
专用字符串通道;
@JsonProperty(“数据”)
私人名单数据;
}

为什么不使用类似的东西

String jsonInput = "[[\"7132.09114\",\"0.00800000\"],[\"7131.71462\",\"0.08900000\"],[\"7122.94432\",\"0.75000000\"],[\"7122.87085\",\"0.20000000\"],[\"7122.38788\",\"0.00300000\"]]";

List<List<BigDecimal>> myObjects = objectMapper.readValue(jsonInput, new TypeReference<List<List<BigDecimal>>>(){});
String jsonInput=“[\'7132.09114\',\'0.00800000\',[\'7131.71462\',\'0.08900000\',[\'7122.94432\',\'0.75000000\',[\'7122.87085\','0.20000000\',[\'7122.38788\','0.00300000\'”;
List myObjects=objectMapper.readValue(jsonInput,newtypereference(){});

什么是数据值?这是您的整个json吗?从json的角度来看,
data
是字符串类型。像Jackson这样的解析器不能做你想做的事情,我认为你应该自己做;)你能解释一下上面的JSON中BigDecimal的确切位置吗?理想情况下,还有一个希望输出的示例。@Haris我需要分析这个数组[\'7132.09114\',\'0.00800000\',[\'7131.71462\',\'0.08900000\'],…到List>您还可以发布您保存数据的类的外观吗?您是如何从它们的字符串中获得
jsonInput
的?为此,我决定将数据类型从List更改为String,并应用您的解决方案。它适合me@Sotirios
List o=mapper.readValue(response.getData()),new TypeReference(){});
@Artem您可以这样做,但这是不必要的,在这个答案中也不清楚。@Artem我建议您检查JSON信息的来源。它应该返回一个正确的JSON。否则,您将不得不求助于上述肮脏的解决方案来进行JSON解析。