csv 如何将平面值转换为具有动态更改模式的JSON?

nfg76nw0  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(93)

我有一个值列表,例如在CSV中;和一个JSON模式**,它可以在运行时更改**。我想从模式中创建一个JSON,并从CSV中填充适当的值。
以下是我想实现的一个例子:
下面是一个CSV:
productId,价格,库存
12345,200,正确
45678,299,正确
我需要将每一行转换为JSON,例如,如下所示。可以有嵌套对象。模式可以更改,我需要提供相关的Map。

{
  "product":{
    "id": "1234",
    "price" : 200,
    "stockAvailable" : "yes"
  }
}

我想到了一些实现它的方法。我想看看是否有更好的方法可以通过一些图书馆。如果没有,有没有任何缺点的任何以下方法?

**1.**从schema中创建一个JSON,默认值为CSV的Map列号,放在大括号内。就像上面的例子中,JSON如下所示。可以使用String格式化程序提供值。

{
  "product":{
    "id": {0},
    "price" : {1},
    "stockAvailable" : {2}
  }
}

**2.**创建一组动态的JSON数据绑定类,填充值(使用Jackson或类似的方法)并转换为JSON。

@JsonPropertyOrder({ "id", "price", "stock"})
public class Product {

    public String id;
    public Double price;
    public Boolean stock;

}
hi3rlvi2

hi3rlvi21#

为什么不使用Map〈String,Object〉并将其 Package 到POJO中呢?
您也可以使用JacksonSubstypes,但您需要事先定义https://www.baeldung.com/jackson-annotations

相关问题