jsoncpp中clear和arrayValue有什么区别

What's the difference between clear and arrayValue in jsoncpp

使用库 jsoncpp 与 json 一起工作。之前创建的对象数组可以通过clear.

清除
Json::Value value;
...
value.clear();

也可以通过arrayValue(或nullValue)提纯。

Json::Value value;
...
value = Json::arrayValue;

问题:cleararrayValue有什么区别?

Clear= 删除所有对象成员和数组元素。

nullvalue = 表示空值。

null、空数组和空对象在 JsonCpp 中是三种不同的东西。

value.clear() 执行以下操作:

  • 空 -> 空
  • 任意数组 -> 空数组
  • 任何对象 -> 空对象
  • 其他 -> 抛出 std::runtime_error

value = Json:arrayValue 执行以下操作:

  • 任意 -> 空数组

所以这两个结构在语义上是不等价的。