json庫使用問題積累

1、類型不同解析結果不同,尤其是Unsigned int 和int 是2種類型

Json::Value v;

// v["test"][(unsigned int)0] = 2147488992; // 編譯不過

v["test"][(unsigned int)0]  = (int)2147488992;

v["test"][(unsigned int)1] = (unsigned int)2147488992;

 

std::string s;

Json::FastWriter w(s);

if (w.write(v))

{

     Json::Value v2;

     Json::Reader r;

     if (r.parse(s, v2, false))

     {

            int n = v["test"].size();

           for(unsigned int i=0;  i< n; i++)

          {

                   int  nValue = v["test"][i].asint;             ///       ------------------------[1]

                  printf("%d   :   %ld !\n", i, nValue);

          }

     }
}

輸出:

0    : 2147488992(對應的負數)

0    : 0(對應的負數)

如果【1】改爲int  nValue = v["test"][i].asUint; 

0    : 0(對應的負數)

0    : 2147488992(對應的負數)

 

發佈了35 篇原創文章 · 獲贊 5 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章