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(對應的負數)