JSR353ではJSONのデータを扱うAPIの仕様について明記しています。今年に入って正式に標準化が決まったようです。
APIが入れられるパッケージはjavax.jsonとのことです。
この仕様のゴールは以下のAPIが開発されることです。
- Produce and consume JSON text in a streaming fashion(similar to StAX API for XML)
- Build a Java object model for JSON text using API classes(similar to DOM API for XML)
- Binding of JSON text to Java objects and vice versa.
既存のJSONデータを扱うパッケージは以下のようなものがあります。
Jacksonは以下のような簡単にPOJOで扱える仕組みです。
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
User user = mapper.readValue(new File("user.json"), 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; }
}
{
"name" : { "first" : "Joe", "last" : "Sixpack" },
"gender" : "MALE",
"verified" : false,
"userImage" : "Rm9vYmFyIQ=="
}