2015-10-04 73 views
3

我偶然關於效果,即的JSON-lib(2.4)的默認配置不允許於與鍵classmetaClassdeclaringClass(見JsonConfig.DEFAULT_EXCLUDES)使用的值。當相應的對象被添加到JSONArray(請參閱下面的代碼段)時,這些鍵值對將從JSON表示中剝離。爲什麼「class」,「metaClass」和「declaringClass」不能用作JSON-lib中的鍵?

// import net.sf.json.*; 
JSONObject anElement = new JSONObject(); 
anElement.put("term", "a value"); 
anElement.put("class", "a value"); 

JSONArray theArray = new JSONArray(); 
theArray.add(anElement); // Default behavior. 

boolean termWasAdded = (((JSONObject)theArray.get(0)).get("term")).equals("a value"); 
// evaluates to true 
boolean classWasAdded = ((JSONObject)theArray.get(0)).get("class") != null; 
// evaluates to false 

我的問題:任何人可以解釋,爲什麼classmetaClassdeclaringClass不能作爲這裏的鑰匙? - 這些物品在某種程度上保留了JSON中的符號嗎?

回答

1

根據源代碼:

排除bean屬性和/或serailizing到JSON時映射鍵(缺省值= [ '類', '的metaClass', 'declaringClass'])

這些是在將對象轉換爲JSON時不想序列化的bean屬性。此外,還有一些方法可用於在生成的JSON中包含這些屬性。

相關問題