我有一段代码如下:
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");
在Poco v 1.6.0中这完全正常,并且v的内容根据设置的功能而改变,但是在1.6.1中它不再起作用,1.6.0之间的设置函数调用是否存在差异和1.6.1?或者可能是什么潜在的问题? (我目前的观察是在1.6.1中,设定线根本没有执行。)
感谢您阅读本文。
注意:如果有任何解决方法可以达到相同的效果,但不必使用设置功能,我将不胜感激。
答案 0 :(得分:0)
所以我今天找到了答案并决定与人分享。
答案:set()函数Poco :: JSON :: Object在1.6.0和1.6.1中有所不同。在1.6.1中,如果已经为该给定键分配了值,则它将不起作用,而在1.6.0中它将仅覆盖它。 1.6.1的一个非常简单的工作是你可以先做remove()函数然后执行set()函数,然后它将工作相同。但是,是的,实现是不同的,可以在Poco库的源代码中检查。