Есть ли простой способ конвертировать строки JSON SV или C++ в HV
В моем классе C++ есть строка json, которую я конвертировал в SV и возвращаю в свой модуль perl как скаляр. Я разбираю этот скаляр и преобразую его в json в моем модуле perl.
Вместо этого я хочу преобразовать строку json в HV или perl-хэш в моем классе C++ и вернуть его в качестве perl-хеша в мой perl-модуль. Есть ли простой способ сделать это.
Я наконец хочу преобразовать эту строку json c в объект JSON;
Пример:
В моем test.cpp у меня есть
std::string json = '{"A":123,"B":"ABC"}';
Я конвертирую его в SV (Perl Scalar) и отправляю его в мой 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. Я не уверен, возможно ли это. Одно из известных мне решений - это проанализировать строку, закодированную в json, преобразовать ее в хеш perl и отправить в модуль perl, а модуль perl преобразует ее в нативный json. Но в этом случае анализ строки C++, закодированной в json, является дорогостоящим, потому что моя строка может быть очень длинной структурой json.
но вместо этого
- Есть ли простой способ вернуть хэш perl ($perl_hash_or_arrayref) из моего файла C++.
- Или верните json($perl_hash_or_arrayref) из файла C++.
Заранее спасибо!!