当前位置: 首页 > 知识库问答 >
问题:

如何使用Jackson解析具有不同类型的无名数组

翟俊
2023-03-14

我有一些json数据,看起来像

"value": [ 1572553480.732, "118" ]

解析器被“无法构造值的实例(不存在创建者,如默认构造)”所阻塞:没有双精度/双参数构造函数/工厂方法从数字值反序列化(1.572553780732E9)”

我的数据类看起来像:

public class Value {
  private double uTime;
  private String count;
  public Value() { super(); }
  public Value(double uTime, String count) {...}
  // also getters and setters for both
}

共有1个答案

劳彦
2023-03-14

可以将< code>@JsonFormat批注与< code>JsonFormat一起使用。Shape.ARRAY形状:

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonPathApp {

    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();

        String json = "{\"value\": [ 1572553480.732, \"118\" ]}";
        System.out.println(mapper.readValue(json, Root.class));
    }
}

class Root {

    @JsonFormat(shape = JsonFormat.Shape.ARRAY)
    private Value value;

    // getters, setters, toString
}

以上代码打印:

Root{value=Value{uTime=1.572553480732E9, count='118'}}
 类似资料:
  • 问题内容: 例如: 因为json数组被解码为go数组,并且go数组需要显式定义类型,所以我不知道如何处理它。 问题答案: 首先,json无效,对象必须具有键,因此它应该类似于或just 。 而当您处理多种随机类型时,只需使用即可。

  • 问题内容: 如何使用Gson解析此JSON?我有一个具有多个对象类型的数组,但我不知道需要创建哪种对象来保存此结构。我无法更改json消息(我无法控制服务器)。 唯一起作用的类是 JSON消息 (请注意具有多个对象类型的数组。) 问题答案: 《 Gson用户指南》明确涵盖了以下内容: https://sites.google.com/site/gson/gson-user-guide#TOC-Se

  • 问题内容: 我想解析一个json文件,但它经过这样的事情: 但是大约有三千个这样的对象。我一直在使用Gson解析我的json对象,但是我怎么解析这种文件呢?以及如何检索名称“ CDG”或“ ORY”? 问题答案: 您可以尝试如下操作: 使用gson,您可以按以下方式检索键名: 并使用java- json 可以执行以下操作: 从网址获取json:

  • 问题内容: 我目前正在使用Gson用Java编写RSS feed解析器。我正在将RSS的XML转换为JSON,然后使用Gson将JSON反序列化为Java POJO(有点回旋,但是有原因)。就下面列出的Feed#1( BBC )进行反序列化而言,一切工作正常,但是对于下面列出的Feed#2( NPR ),我开始抛出异常。 我认为我已经确定了问题,但不确定如何解决该问题: 这是由于以下两个RSS F

  • 问题内容: 我正在尝试从服务器解析JSON响应,如果在post方法中发送的查询中有更改,我将第一个作为响应,否则,我将第二个作为响应。 1: 2: 如您所见,返回对象是否更改,如果没有更改,则返回字符串。 我正在使用这种方法来获取数据,并且我正在使用Gson Converter来映射数据。 这是请求界面 这是我的POJO课 最后我进行了改造电话: 问题答案: 谢谢您的建议,但我想出了一种可行的方法

  • 问题内容: 我有一个JSON 不同系列中的值是(“ rating”:0)或(“ rating”:“ 9.6747”)。 我正在使用Codable / Decodable协议解析JSON: 如果rating == String,则我的代码有效,并且我具有JSON中的所有变量,但是如果rating == Int,则全部为。我应该怎么做来解析所有类型变量一次和? 我的可解码功能: 谢谢。 问题答案: 您