gpt4 book ai didi

Java - 解析此样本数据的最佳方式

转载 作者:行者123 更新时间:2023-11-29 05:50:02 25 4
gpt4 key购买 nike

我有这种形式的示例数据:

{
ID:2
Type:None
Reference1:6369-545.1
Reference2:6369-545.2
Name:"John Smith Abbott"
Extra:""
},
{
ID:3
Type:None
Reference1:7854-568.1
Reference2:6369-545.2
Name:"Dave St. Ledger"
Extra:""
},
{
ID:4
Type:None
Reference1:8765-177.1
Reference2:6369-545.2
Name:"Martha Stone"
Extra:""
},
{
ID:6
Type:None
Reference1:9856-487.1
Reference2:6369-545.2
Name:"Peter O'Neill"
Extra:""
},

还有很多记录,但我只放了一个小样本,并更改​​了一些名称。

在我看来,这是非常糟糕的格式。它与 Java 中的 JSON 解析器不兼容,因为这些字段没有被双引号括起来,而且我无法进行大量查找/替换。此外,每条记录的末尾没有用逗号分隔,所以虽然我可以将每条记录放入 String[] 中。 ,我无法再将它们分开。看这里:

ID:2 Type:None Reference1:6369-545.1 Reference2:6369-545.2 Name:"John Smith Abbott" Extra:""}

通常我会split()按空格,但由于人名中有空格,因此无法完成。

我在 }, 上进行了批量查找/替换替换为 };就像我上面说的,我能够分离出每条记录,但无法再进一步了。我想我可能需要对这些数据做更多的查找/替换操作以使其可用。理想情况下,我希望能够添加 comma在每行数据的末尾,不向现有的 }, 添加一行和 {行。

最终目标是将这些数据插入数据库。它的原始文本及其格式。我无法更改源以重新格式化它,但我可以对这些数据做任何我想做的事情,就像它在一个大文本文件中一样。

最佳答案

没那么难:

逐行读取文件:

如果您读取“{”调用 readObject() 方法,该方法读取到下一个(包括)“}”。

在这个读取对象中:
您逐行阅读,并使用带有分隔符“:”的 String.split();这样第一个存储在可变键中,值存储在 val 中。

String lineSplitted = line.split(":");
String key = lineSplitted[0];
String value = lineSplitted[1];

现在要么通过将键与所有可能性进行比较来找到要设置的成员,要么使用反射来获取名为“键”的字段。

关于Java - 解析此样本数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com