最近的一個項目中使用了json傳送部分參數,可是使用時發現匪夷所思的現象,即中文被轉換為了unicode編碼。
最后使用StreamWriterBuilder解決了此問題,特此記錄一下。
#include "stdafx.h" #include "include\json\json.h" #include <iostream> using namespace std; int main() { Json::Value J; // 要生成的 json 對象 J["data"] = 12345; J["error"]= "測試"; string strTest = J.toStyledString(); cout << "old:" << strTest << endl; Json::StreamWriterBuilder jswBuilder; jswBuilder["emitUTF8"] = true; std::unique_ptr<Json::StreamWriter>jsWriter(jswBuilder.newStreamWriter()); std::ostringstream os; jsWriter->write(J, &os); cout << "new:" << os.str() << endl; return 0; }
參考文檔:C++ Builder 生成 json,Json::StreamWriterBuilder 參數詳解 - 簡書 (jianshu.com)