JsonCpp第一課 數據讀取

    Jsoncpp是個跨平臺的C++開源庫,下載地址:http://sourceforge.net/projects/jsoncpp/。assert作爲錯誤處理方法,會中止程序的運行,切記!Json格式的文本文件不建議使用Windows的記事本打開,會破壞文件的格式,導致讀取失敗,建議使用Notepad++進行修改查看


1)從文件中解析json信息
     std::ifstream ifs;
     ifs.open("testdata.json", std::ios::binary);

     Json::Reader reader(Json::Features::strictMode());
     Json::Value root;
     if (NULL == reader.parse(ifs, root))
     {
          ifs.close();
          return;
     }
     ifs.close();


2)從緩存中解析json信息
     std::string strJsonText ="{\"total\":1,\"toReturn\":[{\"createTime\":\"20080806114526000+0800\",\"createUser\":\"張三\"}],\"success\":false}";

     Json::Reader reader(Json::Features::strictMode());
     Json::Value root;
     if (NULL == reader.parse(istrJsonText, root))  return;


注意:
    JsonCpp解析非法json時,會主動容錯成字符類型,對字符類型取下標時,會觸發assert終止程序。解決的方法:啓用嚴格模式,當解析非法json時返回false,不再自動容錯。創建讀取對象的時候,指定特性:Json::Reader reader(Json::Features::strictMode());
不提倡使用 Json::Reader reader;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章