Jackson keyの頭文字の大文字のJsonはjavaBean方法を回転します.

1073 ワード

最近はソフトウェアで送信されるメッセージを取得します.そのソフトウェアはjson形式ですが、頭文字は大文字で、javaBean形式には合わないです.例:
{"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に変えます.