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 件のコメント:
コメントを投稿