web-dev-qa-db-ja.com

JavaオブジェクトをJSONObjectに変換する方法は?

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();
    }

しかし、今回はファイルを必要としません。

9
J. K.

それがあまり複雑なオブジェクトでない場合は、ライブラリなしで自分で行うことができます。以下に例を示します。

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 を使用して、より複雑なものやより面倒な実装を行うこともできます。

7
Philipp Jahoda

以下の例は 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);

    }
}
11
user1043279

サーバーのすべてのモデルクラスをGSON形式で解析する場合、これはJavaオブジェクトをJSONObjectに変換する最良の方法です。以下のコードでは、SampleObjectはJava JSONObjectに変換されるオブジェクト。

SampleObject mSampleObject = new SampleObject();
String jsonInString = new Gson().toJson(mSampleObject);
JSONObject mJSONObject = new JSONObject(jsonInString);
4