我耗費了JSON網絡的API,將所有&」,」,<和>,在數據字符&放;, & QUOT;等它看起來像它的使用PHP的用htmlspecialchars()。使用Play修正htmlspecialchars() - JSON負載內的編碼數據!和傑克遜
我有一些工作的PHP代碼與此交易,如:
function unescape_special_chars(&$value, $key) {
$value = html_entity_decode($value, ENT_QUOTES, 'UTF-8');
}
...
$response = json_decode($response->getBody(), true);
// the data has been run through htmlspecialchars(), we must undo this
array_walk_recursive($response, 'unescape_special_chars');
這是很好的,我不知道或不關心返回的JSON對象的結構是什麼,但上面走它,修復了這一切
我需要將這些代碼重寫爲Java,並且使用Play!框架。我對Play很新,在Java上生鏽。這裏是我迄今爲止在一個實用程序類我的Play應用程式內:
protected Promise<JsonNode> consumeApi() throws Exception {
Promise<Response> resultsP = WS.url(REST_URL).post("");
Promise<JsonNode> jsonNodeP = resultsP.map(new Function<Response, JsonNode>() {
public JsonNode apply(Response response) throws Throwable {
// Here I need to "array_walk_recursive" in Java/Jackson
return response.asJson();
}
});
return jsonNodeP;
}
我怎樣才能做到在Java和/或傑克遜相似的地方?我有一種感覺,我應該能夠遍歷由JsonNode提供的樹模型,但是我可以在正確的方向上使用一些建議或指針。謝謝。