色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java json的key帶點

錢多多1年前8瀏覽0評論

在Java中,JSON是一種常用的數據交換格式。一個JSON對象由若干個鍵值對組成,鍵名和鍵值之間用冒號分隔,鍵值和其他鍵值之間用逗號分隔,整個對象用大括號包裹起來。在某些情況下,我們可能需要在JSON對象的鍵名中使用句點(.)來表示層級關系,例如:

{
"person.name": "張三",
"person.age": 20,
"person.address.city": "北京",
"person.address.street": "西二旗"
}

如果我們使用常規的方式來讀取這個JSON對象,會出現無法正常獲取對應的鍵名的情況。

JSONObject jsonObject = new JSONObject(jsonString);
String name = jsonObject.getString("person.name"); // 報錯

解決這個問題的方法是使用getJSONObject()方法來逐級獲取,示例如下:

JSONObject jsonObject = new JSONObject(jsonString);
JSONObject personObject = jsonObject.getJSONObject("person");
String name = personObject.getString("name");
String city = personObject.getJSONObject("address").getString("city");

需要注意的是,在將JSON對象轉成字符串的時候,同樣需要使用逐級獲取的方式來避免出現帶點的鍵名。

JSONObject personObject = new JSONObject();
JSONObject addressObject = new JSONObject();
addressObject.put("city", "北京");
addressObject.put("street", "西二旗");
personObject.put("name", "張三");
personObject.put("age", 20);
personObject.put("address", addressObject);
String jsonString = personObject.toString(); // {"name":"張三","age":20,"address":{"city":"北京","street":"西二旗"}}

在使用Java操作JSON的過程中,帶點的鍵名雖然不常見,但同樣需要注意。通過逐級獲取的方式,可以避免出現因為帶點而產生的讀取或轉換錯誤。