Jackson keyの頭文字の大文字のJsonはjavaBean方法を回転します.
1073 ワード
最近はソフトウェアで送信されるメッセージを取得します.そのソフトウェアはjson形式ですが、頭文字は大文字で、javaBean形式には合わないです.例:
しかしjava-libを使って、キティちゃんはいつも爆発してJava Identifier Trans formerの異常が探し出せません.実は一番簡単な方法があります.第三方倉庫FastJSONを使って、頭文字の大きさに関係なく、直接にjavaBenに変えます.
{"Code":"20180906","Weight":18}
springのJacksonで直接解析して、beanの中の値はすべてnullで、ネット上でいくつかの例を探して、最後に汎型の方法を書きます.@SuppressWarnings("unchecked")
private T uppercaseJsonTOBean(String json, Class clazz) {
JsonConfig config = new JsonConfig();
config.setJavaIdentifierTransformer(new JavaIdentifierTransformer() {
@Override
public String transformToJavaIdentifier(String str) { //str => json key
char[] chars = str.toCharArray();
chars[0] = Character.toLowerCase(chars[0]);
return new String(chars);
}
});
config.setRootClass(clazz);
T obj = (T) JSONObject.toBean(JSONObject.fromObject(json), config);
return obj;
}
原理:JSONのconfigを設定してkeyプロセッサを追加します. JavaIdentifiier Transformerは、変化によって正常な転化を実現します.しかしjava-libを使って、キティちゃんはいつも爆発してJava Identifier Trans formerの異常が探し出せません.実は一番簡単な方法があります.第三方倉庫FastJSONを使って、頭文字の大きさに関係なく、直接にjavaBenに変えます.