有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在进一步处理之前验证JSON

我有以下csv文件(在生产中,记录的数量可以从20k到100k不等,并且有许多字段)

id,firstname,lastname,email,profession
100,Betta,Wandie,Betta.Wandie@gmail.com,developer
101,Janey,Firmin,Janey.Firmin@gmail.com,doctor

我需要将其转换为json并进行进一步处理。 CSV->;JSON->;进一步处理

。我可以使用这里给出的代码直接将其转换为JSON directly convert CSV file to JSON file using the Jackson library

但我想对json进行验证,比如如果lastname的值为null,则忽略该记录或缺少id,然后忽略该记录

我如何处理验证?我使用的是Java8和SpringBoot的最新版本


共 (1) 个答案

  1. # 1 楼答案

    我使用JavaScript(Nashorn)做了类似的事情。是的,这是令人讨厌的,但它的工作,它是惊人的快

    不幸的是,我手头没有源代码

    我这样做的原因与@chrylison-strike在他们的评论中暗示的原因相同:如果每个JSON记录都有一个对象,验证就容易多了。但由于我很懒,而且我绝对不需要为此创建Java对象,所以我想到了在Java程序中使用JavaScript脚本

    基本上,JSON字符串是JavaScript程序的源代码;您可以直接将其分配给JavaScript变量,然后可以将记录作为数组元素访问,并按其名称访问字段。因此,JavaScript代码遍历记录并删除与验证规则不匹配的记录

    现在是Java部分:这里的关键字是JSR223;它是一个API,允许您在Java环境中执行脚本。在您的情况下,必须在上下文中提供转换后的JSON,然后启动脚本将修改后的JSON写回上下文

    如果转换的JSON太大,您甚至可以使用相同的技术逐个记录检查;如果编译脚本,它的速度几乎与本机Java一样快

    您甚至可以省略Jackson,让JavaScript进行转换

    很抱歉,我不能提供代码示例;我会尽力抓住它们,如果我得到它们,我会把它们添加进去