JSONのマッピングなんて初歩の初歩だけどやるのは初めてだった。
JSON⇔JavaではGsonを使ってみた。
【Gson】GSONは、Googleが提供するJSONデータとJavaオブジェクトを相互に変換するためのライブラリ。
使いたい場合はPOMに書いて
com.google.code.gson gson 2.3
JSONデータのサンプルはこれで めちゃ簡単にした
{
"user_id": 1,
"name": "hokboy",
"mail": {
"pc": "XXX@gmail.com",
"mobile": "XXX@softbank.ne.jp"
}
}
マッピングするJavaのオブジェクトは
public class User {
private int id;
private String name;
private Mail mail;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Mail getMail() {
return mail;
}
public void setMail(Mail mail) {
this.mail = mail;
}
}
public class Mail {
private String pc;
private String phone;
public String getPc() {
return pc;
}
public void setPc(String pc) {
this.pc = pc;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
で、シリアライズ(Jsonに変換)する場合は
String jsonData = "{\"user_id\":1,\"name\":\"hokboy\",\"mail\":{\"pc\":\"XXX@gmail.com\",\"mobile\":\"XXX@softbank.ne.jp\"}}"
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class)
デシリアライズ(Javaオブジェクトに変換)する場合は
Mail mail = new Mail();
mail.setPc("XXX@gmail.com");
mail.setMobile("XXX@softbank.ne.jp");
User user = new User();
user.setId(1);
user.setName("hokboy");
user.setMail(mail);
Gson gson = new Gson();
String jsonData = gson.toJson(user)
てな感じ
今悩んでるのは
{
"1": [
{
"1": [
{
"1": [
{
"hoge": "fuga"
}
]
}
]
}
]
}
このJSON形式だと、オブジェクト化すんのむずくね… キーがなくてバリューしかないっていう…
0 件のコメント:
コメントを投稿