我想将 Foxpro 2.6 Dos 数据文件(DBF - DBase III 格式)转换为 JSON 文件。我们是否有任何 C/C++ 库可以将 DBF 转换为 JSON 以及从 JSON 转换回 DBF。
问问题
1907 次
1 回答
1
Perl 模块DBD::XBase
将为您提供帮助。
在 Linux 上:sudo apt-get install libdbd-xbase-perl
在 Windows 上:安装ActivePerl,然后ppm install DBD::XBase
之后,您将拥有可以将 DBF 文件转换为 CSV 的命令行实用程序dbf_dump
(dbfdump
在 Windows 上)(您需要使用 --fs ","
switch 来创建 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();
于 2012-10-27T10:28:43.927 回答