libjson 支持 64 位 int 类型吗?

pay*_*s4u 4 c++ json libjson

我正在尝试使用 json.push_back 调用将 64 位整数数据推送到 JSONNode

    uint64_t myHigh = 0x10;          
    uint64_t myLow = 0x12;
    uint64_t myFinal = 0;


    myFinal = (myHigh << 32) | myLow ;

    std::cout << "val = 0x" << std::hex << myFinal << "\n";-----(1)
    JSONNode jvData;

    jvData.push_back(JSONNode("value",myFinal));
    std::cout<<jvData.write();--------------------------(2)
Run Code Online (Sandbox Code Playgroud)

cout (1) 给出值 0xa0000000c cout (2) 显示值 12。

我预计 cout (2) 值为 42949672972 但似乎没有按预期工作

Json支持64位int吗?

Mat*_*get 5

64 位整数无法用 JSON 表示,因为 JavaScript 内部将值编码为 64 位浮点值 ( http://ecma262-5.com/ELS5_HTML.htm#Section_8.5 )。

因此,精度限制为 53 位 (2^53)。

如果要交换 64 位整数,可以使用字符串或将 64 位整数拆分为两个 32 位整数,然后重新组合它们(通过 JSON 发送 64 位值的可接受方法是什么?)。