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"]}