JsonObjectclass图书馆json-lib-2.2.3(net.sf.json)有两种方法:
public void putAll( Map map )
和
public void accumulateAll( Map map )
我必须将所有地图详细信息放在 JSONObject 中。
我应该使用哪种方法以及为什么(即两者之间有什么区别)?
从javadoc开始accumulate:
在一个键下累积值。它类似于 element 方法,只是如果键下已经存储了一个对象,则在键下存储一个 JSONArray 以保存所有累积的值。如果已经存在 JSONArray,则将新值附加到它。相反,replace 方法替换了之前的值。
由此看来,这似乎accumulateAll会调用accumulate映射中的所有值,即对象中已经存在的值不会被替换,而putAll可能会替换现有值。
例子:
你有一个像这样的对象:{"chars":"A"}.
putAll带有包含的地图"chars" -> "B"会导致{"chars":"B"}accumulateAll带有包含的地图"chars" -> "B"会导致{"chars":["A","B"]}