0

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

public void putAll( Map map )

public void accumulateAll( Map map )

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

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

4

1 回答 1

0

javadoc开始accumulate

在一个键下累积值。它类似于 element 方法,只是如果键下已经存储了一个对象,则在键下存储一个 JSONArray 以保存所有累积的值。如果已经存在 JSONArray,则将新值附加到它。相反,replace 方法替换了之前的值。

由此看来,这似乎accumulateAll会调用accumulate映射中的所有值,即对象中已经存在的值不会被替换,而putAll可能会替换现有值。

例子:

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

  • putAll带有包含的地图"chars" -> "B"会导致{"chars":"B"}
  • accumulateAll带有包含的地图"chars" -> "B"会导致{"chars":["A","B"]}
于 2013-10-08T11:42:09.010 回答