GSON 2.2.2を(初めて)使用して、JSONをJavaPOJOにマップしようとしています。サードパーティのRESTfulWebサービスにアクセスしています。これは、返されるJSONの例です。
{
"response": {
"job":{
"eta":-1,
"status":"approved",
"mt":1,
"lc_tgt":"fr",
"body_src":"Please translated me.",
"body_tgt":"S'il vous plaît traduire moi.",
"unit_count":3,
"tier":"machine",
"credits":0,
"ctime":"2013-02-07 14:56:12.391963",
"lc_src":"en",
"slug":"0",
"job_id":"NULL"
}
},
"opstat":"ok"
}
これをマッピングしようとしているPOJOは次のとおりです。
public class Job {
// correlates to "eta"
private int eta;
// correlates to "body_src"
private String sourceBody;
// correlates to "ctime"
private java.util.Date creationTimestamp;
// Getters and setters for all 3 properties
}
次のコードを実行すると、例外は発生しませんが、printステートメントは " null
":を出力するだけです。
// Hit the 3rd party service and get the JSON (example above).
JSONObject json = hitRestfulWebService();
Gson gson = new Gson();
// json.toString = "{response":{"job":{ ..."
Job job = gson.fromJson(json.toString(), Job.class);
System.out.println(job.getSourceBody());
私の唯一の推測は、GSONが3つのJSONフィールドを私の3つJob
のプロパティにマップする方法を理解できないということです。誰かがこのマッピングが何である必要があるかを理解するのを手伝ってもらえますか?前もって感謝します。