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

将两种类型的json转换为同一个对象

后焕
2023-03-14

我正在编写一个返回json的web服务api框架。我使用Jackson库反序列化json字符串。api返回一个属性来继续获取请求的结果。这样的回应:

{
    continueToken:"token",
    results: [ 
                {
                },
             ]
}

所有的回答都有这样的结构。唯一的问题是continue属性的名称因请求而异。名字是这样的

prefix + "continue"

我想只创建一个类,并且能够将json映射到这个类。我怎么能那样做?这是我想要的:

public class Response {
    private String continueToken;
    private List<Article> results;

    public Response (String continueToken, Article[] articles) {
         this.continueToken = continueToken;
         this.results = Arrays.asList(articles);
    }
}
//Here the name is ttcontinue
String json = request.get(type1);
Response r = jsonToResponse(json);

//Here the name is llcontinue
json = request.get(type2);
r = jsonToResponse(json);

共有1个答案

欧旻
2023-03-14

陛下如果有动态字段名,则注释解决方案无法工作。假设没有其他以“continue”结尾的JSON字段(在您的示例中是这样),您可以执行以下步骤:

  1. 重复使用本文中的JSON键
 类似资料:
  • 我有两个收藏: 现在我的解决办法是: 我的问题:是否有其他方法来配对和收集Foo对象?

  • 问题内容: 从源(s,s,s)读取图像的最便捷方法是: 但是,然后, 如何转换为格式? 问题答案: 您可以创建所需类型的新BufferedImage,然后在其上绘制原始图像,如下所示:

  • 问题内容: 我正在尝试使用Go语言,并且对它很陌生。我已经成功地完成了教程,现在正在编写一个小程序来评估其通常执行的操作类型的性能。我有一个很长的float32类型切片,需要将其尽可能有效地转换为float64类型的切片。除了遍历slice的元素并通过output [i] = float64(data [i])显式转换单个元素的类型外,还有没有一种方法可以用来转换整个slice而无需迭代?我曾尝试

  • 例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。

  • 问题内容: 我的服务器JSON返回了两种不同类型的DateFormat。“ MMM dd,yyyy”和“ MMM dd,yyyy HH:mm:ss” 当我使用以下内容转换JSON时,就可以了: 但是,当我想要详细的日期格式并将其更改为该格式时,它将引发异常com.google.gson.JsonSyntaxException:2013年3月21日 gson是否可以处理Json转换的两个不同的Dat

  • 我正在尝试将输入 json 的值映射到输出 json 的哈希映射,并且还想使用 jolt json 转换将该值保存到另一个键 输入json: 规格: 输出 而我还想将字符串元数据映射到原始数据预期输出: