C++ Poco JSON中文解析出现乱码问题

C++ Poco JSON中文解析出现乱码问题

1. 问题

用C++ 库 POCO 解析JSON时,看到这篇帖子Poco JSON解析, 发现两层的中文解析乱码,如:

	Poco::JSON::Object o1,o2;
    o1.set("wo","地址");
    o2.set("wo2","地址");
    o1.set("wo3", o2);
    std::stringstream ostr;
    o1.stringify(ostr);
    std::cout << ostr.str() << std::endl;

编译结果:

{
     
  "wo" : "地址",
  "wo3" : {
     
    "wo2" : "\u5730\u5740"
  }
}

Process finished with exit code 0

o2无法解析中文。

2. 解决方案:

查看了Object的cpp文件,发现嵌套json里面应该转换成struct对象才可以正常显示!
如:

	Poco::JSON::Object o1;
    Poco::JSON::Object::Ptr o2 = new Poco::JSON::Object;
    o1.set("wo","地址");
    o2->set("wo2","地址");
    o1.set("wo3", Poco::JSON::Object::makeStruct(o2));
    std::stringstream ostr;
    o1.stringify(ostr);
    std::cout << ostr.str() << std::endl;

输出:
{
     "wo":"地址","wo3":{
      "wo2" : "地址" }}

你可能感兴趣的:(c++,json,乱码)