あなたは本当にあなたのURLにJSONを入れたいですか?とにかく
:
public String getToken(MyPlace place) {
JSONObject obj = new JSONObject();
obj.put("id", new JSONString(place.getId());
return obj.toString();
}
public MyPlace getPlace(String token) {
JSONObject obj = JSONParser.parseStrict(token).isObject();
return new MyPlace(obj.get("id").isString().stringValue());
}
あなたはAutoBeansを使用して同じことを達成することができます。いずれにしても、あなたの場所の中や外に物をコピーしてください。代替案として
、あなたはもちろん、あなたの場所はJSONObject/AutoBeanに裏打ちされたこと持つことができます。
class MyPlace extends Place {
public static class Tokenizer implements PlaceTokenizer<MyPlace> {
public String getToken(MyPlace place) {
return myPlace.jsonObject.toString();
}
public Place getPlace(String token) {
return new MyPlace(JSONParser.parseStrict(token).isObject());
}
}
private final JSONObject jsonObject;
public MyPlace() {
this(new JSONObject());
}
public MyPlace(JSONObject jsonObject) {
this.jsonObject = jsonObject;
}
public String getId() { return jsonObject.get("id").isString().stringValue(); }
public void setId(String id) { jsonObject.put("id", new JSONString(id)); }
}
注:上記の作品のすべてのより良いAutoBeansと。エラー処理はJSONObjectを持つPITAであり、非常に読みやすいコードでもありません。
場所が多い場合は、何らかのコード生成プログラムが役立ちます。
ありがとう、autobanの機能は私が必要とするものと正確に思われる –