на Rapidjson кодируйте просто число в строку, а затем декодируйте его

используя rapidjson, как я могу закодировать число в формате json? у меня 123.321, я хочу преобразовать его в "123.321", а затем сохранить в файл. позже с помощью json преобразуйте его обратно в 123.321. я не хочу использовать документ, который сохраняется как "{"тег":"значение"}", я хочу, чтобы он был сохранен как просто "значение", а затем преобразован обратно.

у меня есть следующий код для преобразования числа в «число»:

Value v(123);
StringBuffer mybuffer;
Writer<StringBuffer> mywriter(mybuffer);
v.Accept(mywriter);
const char* myjson = mybuffer.GetString();

как конвертировать обратно? следующее решение? я не хочу использовать обработчик!

Reader reader;           
StringStream ss(myjson); 
reader.Parse(ss, handler);

спасибо за предстоящие подсказки.


person hmojtaba    schedule 16.09.2015    source источник


Ответы (1)


Я нашел ответ только после того, как покопался в гугле:

для кодирования числа в json с помощью rapidjson:

Value v(123.321);
StringBuffer mybuffer;
Writer<StringBuffer> mywriter(mybuffer);
v.Accept(mywriter);
const char* myjson = mybuffer.GetString();

теперь myjson имеет значение "123,321". затем декодировать myjson в число:

Document d;
d.Parse(myjson); // myjson is "123.321"
assert(d.IsNumber());
value = d.GetDouble(); // now the value is 123.321

настолько просто, насколько это возможно.

person hmojtaba    schedule 21.09.2015