对rapidjson,编码只是一个数字字符串,然后解码它

on rapidjson, encode just a number to string then decode it

本文关键字:数字字符 数字 字符串 一个 然后 解码 编码 rapidjson      更新时间:2023-10-16

使用rapidjson,我如何将数字编码为json格式?我有123.321,我想把它转换成"123.321",然后保存在一个文件中。稍后使用json将其转换回123.321。我不想使用文档保存为像"{"tag":"value"}",我希望它被保存为只是一个"值",然后被转换回来。

我有以下代码将number转换为"number":

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

如何转换回来?下面是一个解决方案吗?我不想使用handler!

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

感谢即将到来的帮助

我在谷歌上搜索了一下才找到答案:

使用rapidjson将一个数字编码为json:

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

now 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