在rapidjson上,只编码一个数字到字符串然后解码它

时间:2015-09-16 05:28:57

标签: c++ c json parsing rapidjson

使用 rapidjson ,如何将数字编码为json格式?我有123.321,我想将其转换为" 123.321",然后将其保存在文件中。后来使用json将其转换回123.321。 我不想使用像#" {" tag":" value"}"这样保存的文档,我希望将其另存为a"值"然后转换回来。

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

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);

感谢即将到来的帮助。

1 个答案:

答案 0 :(得分:2)

我在挖掘谷歌后才找到答案:

使用rapidjson将数字编码为json:

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

尽可能简单。