目錄
問題內容
解決方法
首頁 Java 使用可變鍵定義 POJO

使用可變鍵定義 POJO

Feb 09, 2024 am 08:42 AM

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

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24