ThorsSerializer: Problem with Serialize Import of a string

Hello I’m having some issues to map a JSON file to a c++ object. I’ve simplifed the code I’m using to only show you the part of the object that has an issue being mapped to c++.

#include "ThorSerialize/Serialize.h"
#include "ThorSerialize/Serialize.tpp"
#include "ThorSerialize/Traits.h"
#include "ThorSerialize/JsonThor.h"
#include <string>
#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

class ValhallaLeg {
	friend class ThorsAnvil::Serialize::Traits<ValhallaLeg>;
	private:
		string shape;
	public:
		ValhallaLeg(){};
		~ValhallaLeg(){};
};

ThorsAnvil_MakeTrait(ValhallaLeg, shape);


int main()
{
	using ThorsAnvil::Serialize::jsonExport;
	using ThorsAnvil::Serialize::PrinterInterface;
	ValhallaLeg* result = nullptr;
	cin >> ThorsAnvil::Serialize::jsonImport(result);
	cout << ThorsAnvil::Serialize::jsonExport(result) << endl;

	return EXIT_SUCCESS;
}

Here is the json that I’m inputing in the console (and in my real code for the shape part of the json): {"shape": "offavAdqtekCsAcFhb@yW|SiMhH{AjLzAfb@lJld@jK~g@jLhScbCvRy~BxRu`C~Hk_A~Hi`AxRg_C~Rw`ChRi~Bh\\i|DpCo]|h@jBxRjAtYjApRvCrcBn]pBMlEz@tYrFdd@zK`h@pRbe@pRpf@b[re@~]dd@~]de@l_@ng@rd@zo@lj@vg@`f@hRtPnS`Rjf@fc@fh@dd@|h@be@ba@n^~a@j_@lcA~|@lo@xk@~g@td@fSkrBlZ|^vb@ng@vjBzsB`]rZ`b@xWveBdy@faAre@lvBvaArdAfb@fdDziAxQdFh`AhVts@bRpRrEtn@dPvDya@fD{_@bUrFbWbG`Gag@dF{Ath@bQti@bPf^nIbp@lJ|D^vNeFdK]lE?lYzApGxBxRvN`HhB`v@zAdELlZjA`q@nJ~g@fCz_AfDhu@|@bViMtP{AnS\\vX`Rf|@uDxdByLz~@iW~r@oThC]tEl@~BjA~C?~XaHnIeEvIsFpGiCvDN|Yfm@lOxVrPxCtZ_@p[{Jj\\mKfDkAf]kL~HwCp\\wMze@yMtd@sPpLeEhl@cR~w@iVrZmJ|O}@`XiBlOL~HrGt_@~H|OtEfItD~CxBlOlKbcBpyAvr@dn@dPvNn{@ls@vx@`r@zt@bo@fb@p]pa@p\\ze@ha@fgAl~@hW|S`xCpdCdo@|h@fh@vb@jKnIld@~]`g@|^ld@hXbe@hW|d@zUdi@~Sj`@fM`Cl@zA^vMdD|i@hN|}@jUfCl@jLvCtJxBgD`I~Cz@rQtEvw@pR~zAn]rtA`]vHvCrAdEvCdE|EvDhHbFlc@p\\hMrG`RdOxRrP~C|@dFhCvCdEfCxBlAzAdE|S~CdEtExCzU~HpQfN|UfNlE|@dE}@rK}IzFkAnDlIpBhCrPfOfIlIzFdFpBfD|@fD`BxBz[|SrQfEtDhBtOdOvDlAvRbFtK|JrFtDtTnI|N|J`CjArKbGzL`HfMfCjGhC~NtObK|IxHdFdT`HdELdJyAnDLfItEdErFNNhHfNfDvCnCxBlKtEzJjAlEjAfEvDpLdPro@vb@tOrPfN~HlFzAdEO~CkAvIiMxGyBzK`Iz@hBNhB_EjWNtDjAhCnYdObFdEbAxBNxBe@`IOtD^dEr@xBdAlAvCj@dE?|E]pByBnCcFjByBbFkBvIMjFxAzj@nT|hApf@pQhMnTjKtx@de@zEz@|JzAlEhBzZvXvTzLnRpQlPpHrFm@lJsFtEjAtEtEr@lT`IpRzJnIlOhM|d@lTfYj`@zPjUzPpHtYzV|OvMxa@fXxL]rKkA|ExBfDfDpG~HnIpGhRnIjPtE`IdEtc@hM~HhCxpAz`@jPzJh]b[dEzAjVkAtTzAfc@tEfh@rFtc@fN|JkAhGiCxC|@hBpG|EdEjFdEhHNfDkB|DlAfDz@pBdEzFvDbGm@zA\\|NvDvNpGrFdEdUpHdYbGhNxAhVfDfJ]xGl@bFvClEdF~DxArE^|O?lJxAbGhCtJvD~CvCxBrFp{@fvAjAjA~DlAvCtDzcA~|@jV~SxBsG`MzKdPfNbFdFrBzAjAz@~CvCdJ~InYvXri@pf@~CvC~c@l_@jV~SjKjKz@l@tJ~Ij[b[zAzAhWdYlJfNtJtOhW~]FN~HlJzPtOrAjAfYzV~XjU~MxL~w@pq@nChCbVlTlU|Td@{Ad@kAf^ecA~R{j@zFaGzFgO|@|@nCcG`HuYbAsGt@eEvDuNrAoJj@aHpC}StD{Ll@wCrGsZbAgDl@kBxW}qA~CeZnIqg@xB{J|h@zUj`@dP`{Atn@|IdEvb@~R`MrFdAl@\\NbnAzt@ld@rPlEjAzA^|^lJpb@zJtNfEtUdEvHl@bu@?dE?jBOfh@iC|bAoRfNgEn^sPzy@oItE^xBpGhB_JjAyArA?xRj@|DNhC|@zAjAth@zApk@xBlELnD{@dFkB~CgDd@{KT_It@wCbBkBbA]z@?jBNvCxB`CxBN\\DzAFdENzA\\z@bA^|@?pf@`Hhg@lItrA|TrAjBl@tEtDzi@FvDbAhl@t@fl@|@vc@tJl@`BiCF{U\\wCzA}@jLzAry@nHjFdFhRdd@l@zAdE`GhCxBjLjW~Wro@bBnIhB~Hf^`{@zAlJLl@jAdFvIjUnNb\\n^n{@`\\pq@|D~SNl@Nl@~BhLNjAt@hCdi@pfArAxAl@^`BLrBM~RgD|@\\j@jA|@fD|EbQjZvl@t@zAnIrQ~HfXpBrFpCrFl@hC~ChL`C~I`BtD|@lAz@LdAm@z@kA\\{@NkAm@wDm@gD]iB?{AT}@jQmTfIxBvIbQ`ChBdExBfDvDrKpRpWpf@zKnSp{@|hAlZdY~\\hl@lO~Rx`AroAMbGWzK\\rEb\\fc@`Cl@fCOdKiBhCOpBl@zAzAlN`SfJdOts@l~@v]dc@jAlAfN~HbGhBhBxBbLbQ|D~HzAfElJbFhH|IdP|UpRlTxGpG`RbRpGpQfh@bf@vm@xk@hq@tn@ld@ha@vSrP|DjBfIz@z@N`DhBvChC`MhM|EdErt@pq@`BhBvNdPfNtO|EdEdEhBpBtEfEzKzZfn@pLlT~N`]n]x_AfY|}@jAlK]hWfChLtE~InNxV`X`g@lJ|^bGxb@vMpeAzKx`A|Jpp@pW~r@dYj_ApHpQ~Wxa@{JfNePlUt@jAbAzArFdOxR|^pk@vaAtJ~S~Nb[r_@rdAzQ|i@n]tlA`g@bzArUvv@lJro@xHzVxa@j~AtNnr@rB|Sb[txA`Mzi@jUfmAjLlh@~M~^hMpf@rFrZdKtZzKb[tItc@nJ~]xQ|i@bL~SjFtNnD~S~C|JpBjKlElJxGpHfDtOpMdO~HtOlUzu@tOre@tOha@dZls@|Xxk@p_BrlClUhXvNvWvl@`fAfTl_@v\\l_@bLlJxeAl~@n|@vaA|i@n|@dZnr@jj@f`Bvw@`nCpg@`oB|]dxA~]tlAp]ngArd@pzAfh@lfB`Ihl@lJ`SnRzt@t@zAxBj@jBkAl@]lTuO]cG_@wC^m@j@]t@l@NhBr@vDbLz_@jQbf@li@dmAzVnr@jd@fbAnTha@vzA`bDzKtZ~Shk@bQhl@fDvNrFbPd@fEGfCe@hC?jA\\xB|@jAxBjAjAlAbAhBtEtOdFzVfCbPfIzVzGzUpp@xiBvHfN|EdOvCdF|EvCt@|@xAxAbGhMpCxC|ItDnDrFnDlJnSli@vCbQpBzVtJ|SlEjLdKfYfNdn@xLjVbFvNnIxVfTpq@z@rFdA`HyM{AqLNyGhBe@NcL`H}EpGOhBe@fEMxBGxBl@rEjFxWbBvNrAhMfHhl@rF|h@NfDbAlTt@jBtErE|DtEbB`HFxBxAvN|@dEhCdFpBbFTzAEhBu@jBeFbF{@jB]hByBxL?rGxBrZsA~zAhGflAFfDl@zK?|J{F`g@u@fD{AtDs@hCkBzUoChv@qC`HsE|UGtD}@fN{Ux`Ae@dE\\~IMrFyCpQuIdo@uEz_@yBnSyBxBGdPqCjL]nIbBnH]`g@r@`HjArPeErGjAjKs@jAsKpR{A]u@}@eK}IwC?_DbF_DdFsAjAqBOeE]iC?cAjAe@bFeFd[FxB?xBWtDoH~S]vCDxBNfD|@bGd@fCfCfOdAlJ}@bFU|@gD`HwD|JUbQbAnS`CvWTfDs@vD_DfCmAfD?dFxC~RtEbQTjB`C`R~CvXbAjAl@OjBm@jFgN`B{@jB\\zKhMjArFjAvMu@nr@M`SWdP?fCFhCjBbF\\nILjLs@fN?xV?p{@kAlJ}PtnAyLvb@gNbe@yWn}@wCjKaRpq@WrEVpHFvC_@hCeD`HwNvl@aHhb@W~SlFpz@G~IeK|s@qGn|@}@n]cAhM?rF`CrQyBn]OrPpBpRE|JaMha@wXz_AmPnq@uErQyBdEs@xBe@`Hm@jLdEb[hGre@d@n]sFn{AeJngA}Jl_@mJtN}^d[oN`GgYxk@eEbf@wC`]cBdmAyBdP_DhLkPlUiChMGzJl@vaAm@hXyLbF}DtOsFrQwDbGyRrZuN~RcQnT}EpG}I~Su@xBqC~HeEdO_D~]cA`|@?dEm@tZG`\\aBxrCcf@`HeZ{@hH||Ad@`RjAx`@|Eb{@bFrdAjFrmArGboAhB~h@d@li@gC~fAkBfkA{@to@eAro@UnHwClsA{BnpAs@n^m@n]{Afm@{Ah`AUlKaCjsAUtEe@vX{AlhAWpHUlJaCx_AsA~g@OpHqBlhA?bGkAbo@O`HqBpeAG`Hm@vb@?fc@FdEbB~{ANnIr@~q@V|ThBp{@VtEr@bp@|@rz@bAlgAbAhv@rAb{@vDb`Dhl@iLti@mKDnh@wCdP{e@~zAaBjVz@dn@rLn{AhBtO?`IiBzKql@|pBwHfOeK|Iom@vNmOvCkGfDeDfDsa@zj@ur@zhA{Vre@gb@l~@qMlToIrQwg@|qAkLja@oH`\\sAxL}@xMu@jLsApQsAzKaB|JyLnh@q]zrA_Ide@qHxk@e@vCs@lKG`G?vDz@~H`HfXt@dFNtEGdEm@zKsAhLmOnqAkAnTm@|IqB`g@OvNTrPt@ju@O|^yAry@LjLl@lJbB|JnC|IdKlUjFvNvCbPxC|^xAxMrB~HlExLnIlU~BxLzA|JjArFvYnqArEfN`HjLdFfC|NNjVwC~Hl@fJz@jVpGnRhMhMfNxLjWhHrZlJvb@nN`g@{uCbz@oIqGwS|JiR~HcALkVlAkLz@{A\\~CfE|@dEbAdExWhjA~CdPzAbGlEnSb[`zArUngAtcAjcFpRfbAfm@v~CbFfXjQhaA~Nvw@fNvv@rKxl@u@rExG~]gDyBl@vD`N`{@rPrdAbBwNlEhX`p@vrD`XbyAxWpzAd@fC`k@x}CbR~fAtOj_AkBzU|J~HfuBnyLrz@r_Fbo@tsDrFb\\wHnHTzAxHvb@fIre@{t@hW}~@xWrGjj@ms@pSiCxB?rFhCjUx`@pxCapAz`@ck@tOwl@pQwI{_@ye@dOi{Avc@i\\hL"}

I get an error that says

what(): ThorsAnvil::Serialize::UnicodeWrapperIterator::checkBuffer: input character can not be smaller than 0x20

I’ve tried removing some part of the string and inputing this smaller chunk of my shape in the console : {"shape": "offavAdqtekCsAcFhb@yW|SiMhH{AjLzAfb@lJld@jK~g@jLhScbCvRy~BxRu`C~Hk_A~Hi`AxRg_C~Rw`ChRi~Bh\\i|DpCo]|h@jBxRjAtYjApRvCrcBn]pBMlEz@tYrFdd@zK`h@pRbe@pRpf@b[re@~]dd@~]de@l_@ng@rd@zo@lj@vg@`f@hRtPnS`Rjf@fc@fh@dd@|h@be@ba@n^~a@j_@lcA~|@lo@xk@~g@td@fSkrBlZ|^vb@ng@vjBzsB`]rZ`b@xWveBdy@faAre@lvBvaArdAfb@fdDziAxQdFh`AhVts@bRpRrEtn@dPvDya@fD{_@bUrFbWbG`Gag@dF{Ath@bQti@bPf^nIbp@lJ|D^vNeFdK]lE?lYzApGxBxRvN`HhB`v@zAdELlZjA`q@nJ~g@fCz_AfDhu@|@bViMtP{AnS\\vX`Rf|@uDxdByLz~@iW~r@oThC]tEl@~BjA~C?~XaHnIeEvIsFpGiCvDN|Yfm@lOxVrPxCtZ_@p[{Jj\\mKfDkAf]kL~HwCp\\wMze@yMtd@sPpLeEhl@cR~w@iVrZmJ|O}@`XiBlOL~HrGt_@~H|OtEfItD~CxBlOlKbcBpyAvr@dn@dPvNn{@ls@vx@`r@zt@bo@fb@p]pa@p\\ze@ha@fgAl~@hW|S`xCpdCdo@|h@fh@vb@jKnIld@~]`g@|^ld@hXbe@hW|d@zUdi@~Sj`@fM`Cl@zA^vMdD|i@hN|}@jUfCl@jLvCtJxBgD`I~Cz@rQtEvw@pR~zAn]rtA`]vHvCrAdEvCdE|EvDhHbFlc@p\\hMrG`RdOxRrP~C|@dFhCvCdEfCxBlAzAdE|S~CdEtExCzU~HpQfN|UfNlE|@dE}@rK}IzFkAnDlIpBhCrPfOfIlIzFdFpBfD|@fD`BxBz[|SrQfEtDhBtOdOvDlAvRbFtK|JrFtDtTnI|N|J`CjArKbGzL`HfMfCjGhC~NtObK|IxHdFdT`HdELdJyAnDLfItEdErFNNhHfNfDvCnCxBlKtEzJjAlEjAfEvDpLdPro@vb@tOrPfN~HlFzAdEO~CkAvIiMxGyBzK`Iz@hBNhB_EjWNtDjAhCnYdObFdEbAxBNxBe@`IOtD^dEr@xBdAlAvCj@dE?|E]pByBnCcFjByBbFkBvIMjFxAzj@nT|hApf@pQhMnTjKtx@de@zEz@|JzAlEhBzZvXvTzLnRpQlPpHrFm@lJsFtEjAtEtEr@lT`IpRzJnIlOhM|d@lTfYj`@zPjUzPpHtYzV|OvMxa@fXxL]rKkA|ExBfDfDpG~HnIpGhRnIjPtE`IdEtc@hM~HhCxpAz`@jPzJh]b[dEzAjVkAtTzAfc@tEfh@rFtc@fN|JkAhGiCxC|@hBpG|EdEjFdEhHNfDkB|DlAfDz@pBdEzFvDbGm@zA\\|NvDvNpGrFdEdUpHdYbGhNxAhVfDfJ]xGl@bFvClEdF~DxArE^|O?lJxAbGhCtJvD~CvCxBrFp{@fvAjAjA~DlAvCtDzcA~|@jV~SxBsG`MzKdPfNbFdFrBzAjAz@~CvCdJ~InYvXri@pf@~CvC~c@l_@jV~SjKjKz@l@tJ~Ij[b[zAzAhWdYlJfNtJtOhW~]FN~HlJzPtOrAjAfYzV~XjU~MxL~w@pq@nChCbVlTlU|Td@{Ad@kAf^ecA~R{j@zFaGzFgO|@|@nCcG`HuYbAsGt@eEvDuNrAoJj@aHpC}StD{Ll@wCrGsZbAgDl@kBxW}qA~CeZnIqg@xB{J|h@zUj`@dP`{Atn@|IdEvb@~R`MrFdAl@\\NbnAzt@ld@rPlEjAzA^|^lJpb@zJtNfEtUdEvHl@bu@?dE?jBOfh@iC|bAoRfNgEn^sPzy@oItE^xBpGhB_JjAyArA?xRj@|DNhC|@zAjAth@zApk@xBlELnD{@dFkB~CgDd@{KT_It@wCbBkBbA]z@?jBNvCxB`CxBN\\DzAFdENzA\\z@bA^|@?pf@`Hhg@lItrA|TrAjBl@tEtDzi@FvDbAhl@t@fl@|@vc@tJl@`BiCF{U\\wCzA}@jLzAry@nHjFdFhRdd@l@zAdE`GhCxBjLjW~Wro@bBnIhB~Hf^`{@zAlJLl@jAdFvIjUnNb\\n^n{@`\\pq@|D~SNl@Nl@~BhLNjAt@hCdi@pfArAxAl@^`BLrBM~RgD|@\\j@jA|@fD|EbQjZvl@t@zAnIrQ~HfXpBrFpCrFl@hC~ChL`C~I`BtD|@lAz@LdAm@z@kA\\{@NkAm@wDm@gD]iB?{AT}@jQmTfIxBvIbQ`ChBdExBfDvDrKpRpWpf@zKnSp{@|hAlZdY~\\hl@lO~Rx`AroAMbGWzK\\rEb\\fc@`Cl@fCOdKiBhCOpBl@zAzAlN`SfJdOts@l~@v]dc@jAlAfN~HbGhBhBxBbLbQ|D~HzAfElJbFhH|IdP|UpRlTxGpG`RbRpGpQfh@bf@vm@xk@hq@tn@ld@ha@vSrP|DjBfIz@z@N`DhBvChC`MhM|EdErt@pq@`BhBvNdPfNtO|EdEdEhBpBtEfEzKzZfn@pLlT~N`]n]x_AfY|}@jAlK]hWfChLtE~InNxV`X`g@lJ|^bGxb@vMpeAzKx`A|Jpp@pW~r@dYj_ApHpQ~Wxa@{JfNePlUt@jAbAzArFdOxR|^pk@vaAtJ~S~Nb[r_@rdAzQ|i@n]tlA`g@bzArUvv@lJro@xHzVxa@j~AtNnr@rB|Sb[txA`Mzi@jUfmAjLlh@~M~^hMpf@rFrZdKtZzKb[tItc@nJ~]xQ|i@bL~SjFtNnD~S~C|JpBjKlElJxGpHfDtOpMdO~HtOlUzu@tOre@tOha@dZls@|Xxk@p_BrlClUhXvNvWvl@`fAfTl_@v\\l_@bLlJxeAl~@n|@vaA|i@n|@dZnr@jj@f`Bvw@`nCpg@`oB|]dxA~]tlAp]ngArd@pzAfh@lfB`Ihl@lJ`SnRzt@t@zAxBj@jBkAl@]lTuO]cG_@wC^m@j@]t@l@NhBr@vDbLz_@jQbf@li@dmAzVnr@jd@fbAnTha@vzA`bDzKtZ~Shk@bQhl@fDvNrFbPd@fEGfCe@hC?jA\\xB|@jAxBjAjAlAbAhBtEtOdFzVfCbPfIzVzGzUpp@xiBvHfN|EdOvCdF|EvCt@|@xAxAbGhMpCxC|ItDnDrFnDlJnSli@vCbQpBzVtJ|SlEjLdKfYfNdn@xLjVbFvNnIxVfTpq@z@rFdA`HyM{AqLNyGhBe@NcL`H}EpGOhBe@fEMxBGxBl@rEjFxWbBvNrAhMfHhl@rF|h@NfDbAlTt@jBtErE|DtEbB`HFxBxAvN|@dEhCdFpBbFTzAEhBu@jBeFbF{@jB]hByBxL?rGxBrZsA~zAhGflAFfDl@zK?|J{F`g@u@fD{AtDs@hCkBzUoChv@qC`HsE|UGtD}@fN{Ux`Ae@dE\\~IMrFyCpQuIdo@uEz_@yBnSyBxBGdPqCjL]nIbBnH]`g@r@`HjArPeErGjAjKs@jAsKpR{A]u@}@eK}IwC?_DbF_DdFsAjAqBOeE]iC?cAjAe@bFeFd[FxB?xBWtDoH~S]vCDxBNfD|@bGd@fCfCfOdAlJ}@bFU|@gD`HwD|JUbQbAnS`CvWTfDs@vD_DfCmAfD?dFxC~RtEbQTjB`C`R~CvXbAjAl@OjBm@jFgN`B{@jB\\zKhMjArFjAvMu@nr@M`SWdP?fCFhCjBbF\\nILjLs@fN?xV?p{@kAlJ}PtnAyLvb@gNbe@yWn}@wCjKaRpq@WrEVpHFvC_@hCeD`HwNvl@aHhb@W~SlFpz@G~IeK|s@qGn|@}@n]cAhM?rF`CrQyBn]OrPpBpRE|JaMha@wXz_AmPnq@uErQyBdEs@xBe@`Hm@jLdEb[hGre@d@n]sFn{AeJngA}Jl_@mJtN}^d[oN`GgYxk@eEbf@wC`]cBdmAyBdP_DhLkPlUiChMGzJl@vaAm@hXyLbF}DtOsFrQwDbGyRrZuN~RcQnT}EpG}I~Su@xBqC~HeEdO_D~]cA`|@?dEm@tZG`\\aBxrCcf@`HeZ{@hH||Ad@`RjAx`@|Eb{@bFrdAjFrmArGboAhB~h@d@li@gC~fAkBfkA{@to@eAro"}

And no error is thrown and I can see the output on the console of the Export in json of the object.

I need help figuring out what’s happening when I input the entire string of my shape. I’ve checked with a JSON lint and it says my json is valid.

Thank you! `

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 19 (11 by maintainers)

Most upvoted comments

@isasmarthalo Please use code fencing to ensure your code is properly displayed. Otherwise every @ could turn into a mention—that’s how I was notified. No telling who else got a mention.

You can indent 4 spaces:

    // your code here

Or you can use 3 backticks for code fencing:

```
// your code here
```

@rk thanks. we seem to have a similar problem with @mentions 😂