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

如何将TSV数据解析为嵌套对象

孔甫
2023-03-14

我试图将以下TSV数据解析为嵌套对象,但我的“标题”字段在嵌套类中始终为空。

我已经在底部包含了将TSV数据转换为对象的方法。

value1 | metaData1 | valueA |
value2 | metaData2 | valueB |
value3 | metaData3 | valueC |
public class Data {
    @Parsed(index = 0)
    private String value0;

    @Parsed(index = 1)
    private String foo;

    @Nested
    MetaData metaData;

    public static class MetaData {
        @Parsed(index = 1)
        private String title;
    }
}
public <T> List<T> convertFileToData(File file, Class<T> clazz, boolean removeHeader) {

    BeanListProcessor<T> rowProcessor = new BeanListProcessor<>(clazz);
    CsvParserSettings settings = new CsvParserSettings();
    settings.getFormat().setDelimiter('|');
    settings.setProcessor(rowProcessor);
    settings.setHeaderExtractionEnabled(removeHeader);

    CsvParser parser = new CsvParser(settings);
    parser.parseAll(file);

    return rowProcessor.getBeans();
}

共有1个答案

马野
2023-03-14

您忘记在您的Metadata.title上定义一个index

public static class MetaData {
    @Parsed(index=1)
    private String title;
}

此外,当输入使用|作为分隔符时,您将分隔符设置为\t

 类似资料:
  • 问题内容: 此JSON输出来自MongoDB聚合查询。我本质上需要将嵌套数据JSON解析为以下’ 和值。 我尝试了5种不同的技术来从中获得所需的信息,但是使用和模块却遇到了问题。 理想情况下,输出将是这样的: 问题答案: 注意:来自MongoDB的JSON响应实际上无效。JSON需要双引号(),而不是单引号()。 我不确定为什么您的响应中有单引号而不是双引号,但是从其外观上,您可以替换它们,然后只

  • 问题内容: 我们的团队决定使用Retrofit 2.0, 并且我正在对该库进行一些初步研究。如标题中所述,我想通过Android应用中的Retrofit 2.0解析一些嵌套的JSON对象。 例如,这是一个嵌套的JSON对象,其格式为: 我对数组内的JSON对象感兴趣。我注意到有一些关于通过Retrofit 1.X解析嵌套JSON对象的文章,但是最新的Retrofit 2.0API发生了很大变化,这

  • 编写我自己的JSON转换器工厂,它扩展converter.factory. 以字符串类型返回原始响应,并自己解析。但是根据我最初的研究,从改型2.0中得到原始的响应并不容易。Retrofit 2.0似乎坚持在将响应传递给我之前将其转换为某个内容,而且Retrofit没有提供自己的。(我可能错了~) Update:我们实际上可以通过将设置为HTTP API接口的pojo,并使用Retrofit提供的

  • 当我试图使用ModelMapper将嵌套的java对象转换为嵌套的DTO时,我遇到了一个问题。在父DTO对象中,子DTO为null。以下是代码片段。 实体类: DTO的课程: 这是映射器代码: 输出: 输出用户DTO:UserDTO[名称=xyz,地址=null,产品=null] 在这里,我想将用户实体转换为UserDTO-dto。我得到了地址和产品DTO的空值。我在这里到底缺少什么?有人知道吗?

  • 数据布局如下所示: 根据我的理解,我的解析器应该是这样的:第一个解析食谱,第二个解析食谱中的成分字段。它可以(根据我的理解)使用食谱提供的论点。在我的recipe对象中,id(int)引用了成分,所以这应该是参数(至少我是这么认为的)。 这些解析器像这样传递给应用程序: 如何在Express-GraphQL中为嵌套类型编写分离解析器?

  • 问题内容: 我正在使用Web服务创建C#应用程序。在我的Web服务中,我正在使用数据。但我无法将此字符串转换为。 我的是: 问题答案: 您的问题不是很清楚。我想您想做的是取回反序列化后可以映射到您的数据集的对象。就像是 而且,您可以继续使用数据集进行编码。就像访问数据集中的数据表一样。 如果这是您想要实现的,并且不想使用以前的答案所建议的自己的POCO。您可能需要先创建Typed DataSet