将DBF转换为JSON

时间:2012-10-27 06:58:41

标签: c++ c database json foxpro

我想将Foxpro 2.6 Dos数据文件(DBF - DBase III格式)转换为JSON文件。我们是否有任何C / C ++库将DBF转换为JSON以及从JSON转换为DBF。

1 个答案:

答案 0 :(得分:1)

Perl模块DBD::XBase将为您提供帮助。

在Linux上:sudo apt-get install libdbd-xbase-perl

在Windows上:安装ActivePerl,然后安装ppm install DBD::XBase

之后,您将拥有可以将DBF文件转换为CSV的命令行实用程序dbf_dump(Windows上为dbfdump)(您需要使用--fs ","开关来创建CSV),然后你可以将CSV转换为JSON。

但是,我建议学习Perl DBI的工作原理,并编写可以从任何其他SQL / DBI源读取DBF的代码。您的Perl代码可能如下所示:

use DBI;

my $dbh = DBI->connect("DBI:XBase:/path/to/dbfs")
    or die $DBI::errstr;
my $sth = $dbh->prepare("SELECT * FROM mytable");
$sth->execute();
while (my $row = $sth->fetchrow_hashref()) {
    # dump ($row->{field1}, $row->{field2}, ...) into your JSON file.
    # you might want to use JSON::XS module here
    # or, you can insert it into PostgreSQL or MySQL via DBI as well
}
$sth->finish();
$dbh->disconnect();