[英]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
您可以嘗試使用 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.