簡體   English   中英

java中的Json轉換具有高性能

[英]Json Transformation in java with high performance

我需要根據作為 Rest 請求一部分的參數將一個 Json 轉換為另一個 Json。 該服務是用 Java 開發的。 我知道,傑克遜 API 可以輕松使用,並且還有一些可用的庫。 但我的要求是盡可能快地使用新的 Json 交付響應。 如果可以給我幾個選項,我可以衡量這些選項的性能。

假設我在數據存儲中有這個 Json:

{
    "bookId": "23228232-2dfa232",
    "bookName": "Json Transformation",
    "bookPublisher": "Tech Publication",
    "bookRating": [
        {
            "source": "All book rank",
            "maxRating": "10",
            "rating": "3.4"
        },
        {
            "source": "Tech Books",
            "maxRating": "5",
            "rating": "2"
        },
        {
            "source": "Popular",
            "maxRating": "3",
            "rating": "1"
        }
    ],
    "bookAuthor": [
        {
            "name": "Jone",
            "specialities": [
                "Json",
                "Javascript",
                "Typescript",
                "nodejs"
            ]
        },
        {
            "name": "Mike",
            "specialities": [
                "Java",
                "Spring",
                "ElasticSearch"
            ]
        }
    ]
}

下面的休息調用應該有來自這個 Json 的相應結果:只獲取作者

/authorName/23228232-2dfa232
{
    authorName: [
        "Jone",
        "Mike"
    ]
}

獲得平均評分

/popularity/23228232-2dfa232
{
    rating: "1.78"
}

那么,問題是如何使用任何可用的庫有效地進行這種轉換? 正如我上面提到的,我可以簡單地使用 Java 中的任何 Json 庫並轉換 Json,但我不確定這是否有效。

您可以使用 JSON-Java --> https://www.baeldung.com/java-org-json

或者谷歌 JSON,又名 GSON 和其他一些列在這里 --> https://javarevisited.blogspot.com/2016/09/top-5-json-library-in-java-JEE.html

要查看流行度和使用統計數據,這可能會幫助您選擇先測試哪些: https : //www.baeldung.com/java-json

您可以使用 GSON,因為它可以輕松地將 JSON 與 POJO 類(尤其是嵌套類)進行映射,以獲取性能比較的快速參考

您可以嘗試使用 little json java 庫來搜索 json 數據。

JsonValue json = JsonParser.parse(stringvariablewithjsondata);
List<JsonValue> authors = json.findAll(SPM.path("bookAuthor", "name")));
List<String> ratings = json.findAllLiterals(SPM.path("bookRating", "rating")));

並計算結果如

JsonArray values = JsonFactory.array();
for(JsonValue value : authors) values.add(value);
JsonObject result = JsonFactory.object().add("authorName", values);
return result.toCompactString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM