サーチ…


前書き

JacksonはJSONを処理するための多目的Javaライブラリです。ジャクソンは開発者にとって高速、正確、軽量、人間工学に基づいた最適な組み合わせを目指しています。

ジャクソンの特徴:

マルチ処理モード、非常に良いコラボレーション

注釈だけでなく、混合注釈

ジェネリック型を完全にサポート

多型のサポート

完全なデータバインドの例

JSONデータ

{
  "name" : { "first" : "Joe", "last" : "Sixpack" },
  "gender" : "MALE",
  "verified" : false,
  "userImage" : "keliuyue"
}

それをUserインスタンスに変換するには、2行のJavaが必要です。

ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
User user = mapper.readValue(new File("user.json"), User.class);

User.class

public class User {

    public enum Gender {MALE, FEMALE};

    public static class Name {
        private String _first, _last;

        public String getFirst() {
            return _first;
        }

        public String getLast() {
            return _last;
        }

        public void setFirst(String s) {
            _first = s;
        }

        public void setLast(String s) {
            _last = s;
        }
    }

    private Gender _gender;
    private Name _name;
    private boolean _isVerified;
    private byte[] _userImage;

    public Name getName() {
        return _name;
    }

    public boolean isVerified() {
        return _isVerified;
    }

    public Gender getGender() {
        return _gender;
    }

    public byte[] getUserImage() {
        return _userImage;
    }

    public void setName(Name n) {
        _name = n;
    }

    public void setVerified(boolean b) {
        _isVerified = b;
    }

    public void setGender(Gender g) {
        _gender = g;
    }

    public void setUserImage(byte[] b) {
        _userImage = b;
    }
}

JSONにマーシャリングすることも同様に簡単です。

mapper.writeValue(new File("user-modified.json"), user);


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow