json-lib的putAll(Map map)和accumulateAll(Map map)方法有什么区别?

时间:2013-10-08 11:31:14

标签: java json json-lib

JsonObjectclass json-lib-2.2.3(net.sf.json) 有两种方法:

public void putAll( Map map )

public void accumulateAll( Map map )

我必须将所有地图详细信息放在JSONObject中。

我应该使用哪种方法以及为什么(即两者之间有什么区别)?

1 个答案:

答案 0 :(得分:0)

来自accumulate上的javadoc

  

累积密钥下的值。它类似于元素方法,除了如果已经有一个存储在键下的对象,则JSONArray存储在键下以保存所有累积值。如果已经存在JSONArray,则将新值附加到其上。相反,replace方法替换了以前的值。

由此,accumulateAll似乎会为地图中的所有值调用accumulate,即对象中已存在的值不会被替换,而putAll可能会替换现有值。 / p>

示例:

你有一个这样的对象:{"chars":"A"}

    带有putAll地图的
  • "chars" -> "B"会产生{"chars":"B"}
  • 带有accumulateAll地图的
  • "chars" -> "B"会产生{"chars":["A","B"]}