有没有一种简单的方法将json SV或C ++字符串转换为HV

时间:2013-10-09 23:17:59

标签: c++ perl swig perl-xs perlguts

我的C ++类中有一个json字符串,我将其转换为SV并作为标量返回到我的perl模块。我正在解析这个标量并将其转换为我的perl模块中的json。

相反,我想将json字符串转换为我的C ++类本身的HV或perl哈希值,并将其作为perl哈希值返回给我的perl模块。有没有一种简单的方法可以做到这一点。

我最终希望将此json c字符串转换为JSON对象;

示例:

在我的test.cpp中我有

std::string json = '{"A":123,"B":"ABC"}';

我将它转换为SV(perl标量)并将其发送到我的perl脚本。

在我的test.pl中,我使用JSON :: XS对其进行编码并将其解码为perl hash或json。

use JSON::XS;

my $perl_hash_or_arrayref  = decode_json $utf8_encoded_json_text;
my $utf8_encoded_json_text = encode_json $perl_hash_or_arrayref;

实际上我正在寻找的是将json编码的c ++字符串转换为本机json并将其返回到我的perl模块。我不确定这是否可行。我知道的一个解决方案是解析json编码的字符串并将其转换为perl哈希并将其发送到perl模块,perl模块将其转换为本机json。但在这种情况下,解析json编码的c ++字符串代价很高,因为我的字符串可能是一个非常长的json结构。

但不是这个

  1. 是否有一种从我的c ++文件返回perl哈希($ perl_hash_or_arrayref)的简单方法。
  2. 或从c ++文件返回json($ perl_hash_or_arrayref)。
  3. 提前致谢!!

0 个答案:

没有答案