使用可變鍵定義 POJO
php小編子墨在這篇文章中將為大家介紹如何使用可變鍵定義POJO(普通舊式的Java物件)。在程式設計中,POJO是指一個簡單的Java對象,它不依賴任何特定的框架或函式庫。可變鍵是指在定義POJO時,鍵(屬性名)可以依需求進行動態的修改或擴充。這種技術讓我們能夠更靈活地操作物件屬性,提高程式碼的可讀性和可維護性。接下來,我們將深入探討如何使用可變鍵定義POJO,並給出一些實際應用場景的範例。
問題內容
我正在嘗試將 json 轉換為 pojo,其中鍵是可變的。例如:以下範例中的柏林、巴黎:
{ "berlin": { "en-us": { "displayname": "us", "supportedlanguage": [ "us" ], "fullexample": "hello us" }, "en-ca": { "displayname": "ca", "supportedlanguage": [ "ca" ], "fullexample": "hello ca" } }, "paris": { "en-us": { "displayname": "us", "supportedlanguage": [ "us" ], "fullexample": "hello us" }, "en-ca": { "displayname": "ca", "supportedlanguage": [ "ca" ], "fullexample": "hello ca" } } }
登入後複製
對於變數鍵(柏林、巴黎)內的所有內容,例如:
"en-us": { "displayname": "us", "supportedlanguage": [ "us" ], "fullexample": "hello us" }, "en-ca": { "displayname": "ca", "supportedlanguage": [ "ca" ], "fullexample": "hello ca" }
登入後複製
我定義的類別如下:
class citydata { map <string, languagedata> locale; } class languagedata { string displayname; list<string> supportedlanguage; string fullexample; }
登入後複製
最後為了適應variablekeys,我定義了一個新對象,如下所示:
class city { map<string, citydata> city; }
登入後複製
但是,我收到以下錯誤:
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Berlin" , not marked as ignorable (0 known properties: ])
登入後複製
如何將變數鍵儲存在 pojo 中?這是必不可少的東西,所以我想透過 jackson objectmapper readvalue 檢索它。
解決方法
您需要將資料解析為 map<string、citydata>
,而不是解析為包含 map 屬性的物件。您的根級別是地圖。
map<string, citydata> parsed = objectmapper.readvalue( input, new typereference<map<string, citydata>>() {});
登入後複製
使用您的類型 city
,您可以使用以下結構解析 json:
{ "city": { "Berlin": { ... }, "Paris": { ... } } }
登入後複製
其中將您的實際 json 嵌套在鍵「city」下(map<string、citydata> city
)。
以上是使用可變鍵定義 POJO的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
<🎜>:種植花園 - 完整的突變指南
4 週前
By DDD
<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)