jsoncpp 不能處理long類型資料

來源:互聯網
上載者:User

標籤:jsoncpp   long   錯誤   

jsoncpp,是一個c++的解析和產生json的開源工具。如果你的c++程式需要解析或產生json,它會使這個過程變得很簡單!

但是,今天在用jsoncpp進行產生json的時候報了錯誤,很顯然這不是我程式的問題。

Test.cpp: In function ‘std::string createJsonData()’:Test.cpp:41: error: conversion from ‘long long int’ to ‘const Json::Value’ is ambiguousinclude/json/value.h:205: note: candidates are: Json::Value::Value(bool)include/json/value.h:188: note:                 Json::Value::Value(const char*) <near match>include/json/value.h:187: note:                 Json::Value::Value(double)include/json/value.h:186: note:                 Json::Value::Value(Json::UInt)include/json/value.h:185: note:                 Json::Value::Value(Json::Int)include/json/value.h:184: note:                 Json::Value::Value(Json::ValueType) <near match>

當我的要產生json的資料中包含long類型時,出現了這個錯誤!如果將long改為int或double則可以通過編譯。

根據錯誤資訊,很顯然,jsoncpp並沒有實現插入資料中有long類新的介面。所以jsoncpp無法處理包含long類新的資料。

在網上搜了一下,有人解釋為何jsoncpp不支援long資料的介面,“為什麼JsonCpp裡面為什麼沒有64位整數?Json起源於javascript,在js中數位表示可能與進階語言中不一樣, 如果一位元字32位表示不了那麼js中應該一律都是用double表示, 所以說js中 大整數其實也是double, 這也就能解釋為什麼在jsoncpp中為什麼沒提供64為整數轉化的方法。”


我嘗試將long類型改為double類型,可以通過,不過產生的json串中,long-》double的資料會在數字後面多一個小數點。這並不是我想要的!

jsoncpp是個不錯的工具,但不能處理long類型是它美中不足的地方。

希望後續的升級能夠解決這個問題!~

jsoncpp 不能處理long類型資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.