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

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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]