1

C++ クラスに json 文字列があり、これを SV に変換し、perl モジュールにスカラーとして返します。このスカラーを解析し、perl モジュールで json に変換しています。

代わりに、C++ クラス自体で json 文字列を HV または perl ハッシュに変換し、それを perl ハッシュとして perl モジュールに返したいと考えています。これを行う簡単な方法はありますか。

最後に、この json c 文字列を JSON オブジェクトに変換したいと思います。

例:

私のtest.cppには

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

これを SV (perl スカラー) に変換し、perl スクリプトに送信しています。

私のtest.plでは、JSON::XSを使用して、perlハッシュまたは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 モジュールに返すことです。これが可能かどうかはわかりません。私が知っている1つの解決策は、jsonでエンコードされた文字列を解析し、それをperlハッシュに変換してperlモジュールに送信し、perlモジュールがそれをネイティブjsonに変換することです。ただし、この場合、json でエンコードされた c++ 文字列の解析にはコストがかかります。これは、文字列が非常に長い json 構造になる可能性があるためです。

しかし、これの代わりに

  1. C++ ファイルから perl ハッシュ ($perl_hash_or_arrayref) を返す簡単な方法はありますか?
  2. または、c++ ファイルから json($perl_hash_or_arrayref) を返します。

前もって感謝します!!

4

0 に答える 0