pOJOをJSONObject(org.json.JSONObject)に変換する必要があります
私はそれをファイルに変換する方法を知っています:
ObjectMapper mapper = new ObjectMapper();
try {
mapper.writeValue(new File(file.toString()), registrationData);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
しかし、今回はファイルを必要としません。
それがあまり複雑なオブジェクトでない場合は、ライブラリなしで自分で行うことができます。以下に例を示します。
public class DemoObject {
private int mSomeInt;
private String mSomeString;
public DemoObject(int i, String s) {
mSomeInt = i;
mSomeString = s;
}
//... other stuff
public JSONObject toJSON() {
JSONObject jo = new JSONObject();
jo.put("integer", mSomeInt);
jo.put("string", mSomeString);
return jo;
}
}
コードで:
DemoObject demo = new DemoObject(10, "string");
JSONObject jo = demo.toJSON();
もちろん、余分な依存関係を気にしない場合は、 Google Gson を使用して、より複雑なものやより面倒な実装を行うこともできます。
以下の例は mkyongs tutorial からかなり引き上げられました。ファイルに保存する代わりに、String json
POJOのjson表現として。
import Java.io.FileWriter;
import Java.io.IOException;
import com.google.gson.Gson;
public class GsonExample {
public static void main(String[] args) {
YourObject obj = new YourOBject();
Gson gson = new Gson();
String json = gson.toJson(obj); //convert
System.out.println(json);
}
}
サーバーのすべてのモデルクラスをGSON形式で解析する場合、これはJavaオブジェクトをJSONObjectに変換する最良の方法です。以下のコードでは、SampleObjectはJava JSONObjectに変換されるオブジェクト。
SampleObject mSampleObject = new SampleObject();
String jsonInString = new Gson().toJson(mSampleObject);
JSONObject mJSONObject = new JSONObject(jsonInString);