字符串写入到json文件
Posted 树梢流年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串写入到json文件相关的知识,希望对你有一定的参考价值。
背景: php产生公告 ,发送到CGI ,在CGI把该公告的json 字符串写入到文件内(转义后的字符串)
通过 jsoncpp 操作
int write_notice_to_json(string str_path, const string& str_content) { Json::Reader reader; Json::FastWriter writer; Json::Value root; if (false == reader.parse(str_content, root)) // reader将Json字符串解析到root,root将包含Json里所有子元素 { return RESULT_ERROR; } std::string json_file = writer.write(root); ofstream ofs; ofs.open(str_path.c_str(), ofstream::out); if (ofs.is_open()) { ofs << json_file; ofs.close(); return RESULT_OK; } return RESULT_ERROR; }
今天来到公司终于搞定了 mark一下
收到的字符串内容:
{\\"Notice\\":{\\"NoticeVersion\\":\\"1414\\",\\"noticeContent\\":[{\\"Image\\":\\"notice\\\\/notice01\\",\\"ImageWidth\\":\\"350\\",\\"ImageHeight\\":\\"5\\"},{\\"Image\\":\\"notice\\\\/notice02\\",\\"ImageWidth\\":\\"350\\",\\"ImageHeight\\":\\"5\\"},\\"jghjfghjfghj\\"]}}
存到文件后
踩的坑:一开始想通过C++ 替换掉转义字符串 但是不起作用
CStringUtils::Replace(m_str_content, "\\\\\\"", "\\"");
//====================================================================================
补充:
之后调整发现,上面的全是费工夫,直接写入到文件就行了,写入文件之后,如果字符串内容是json,那就可以直接解释成json了
1 int write_notice_to_txt(string str_path, const string& str_content) 2 { 3 ofstream ofs; 4 ofs.open(str_path.c_str(), ofstream::out); 5 if (ofs.is_open()) 6 { 7 ofs << str_content; 8 ofs.close(); 9 return RESULT_OK; 10 } 11 return RESULT_ERROR; 12 }
以上是关于字符串写入到json文件的主要内容,如果未能解决你的问题,请参考以下文章