Есть ли простой способ конвертировать строки 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.

но вместо этого

  1. Есть ли простой способ вернуть хэш perl ($perl_hash_or_arrayref) из моего файла C++.
  2. Или верните json($perl_hash_or_arrayref) из файла C++.

Заранее спасибо!!

0 ответов

Другие вопросы по тегам