2016-05-12 20 views
2

我有一段代碼如下:波科:: JSON ::對象:: PTR設置功能不工作1.6.1

Poco::JSON::Parser a; 
Poco::Dynamic::Var v = a.parse(str); //str is a json string 
Poco::JSON::Object::Ptr p = v.extract<Poco::JSON::Object::Ptr>(); 
p->set("key","value"); 

在波索v 1.6.0這個工程完全沒問題,而且v的內容根據設置的函數而改變,但在1.6.1中它不再工作,1.6.0和1.6.1之間的設置函數調用是否有區別?或者什麼可能是潛在的問題? (我目前的觀察是,在1.6.1中,設置線根本沒有執行。)

感謝您閱讀本文。

注意:如果有任何解決方法可以達到相同的效果,但不必使用set函數,我將不勝感激。

回答

1

因此,我今天找到答案,並決定與人分享。

答案:set()函數Poco :: JSON :: Object在1.6.0和1.6.1中有所不同。在1.6.1中,如果已經賦值給該鍵,它將不會運行,而在1.6.0中,它將會覆蓋它。 1.6.1的一個非常簡單的工作是你可以先執行remove()函數,然後執行set()函數,然後它將工作相同。但是,是的,實現是不同的,可以在Poco庫的源代碼中檢查。