如何将Java对象转换为JSONObject?

时间:2014-06-20 08:11:11

标签: java android json type-conversion 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();
    }

但这次我不想要文件。

3 个答案:

答案 0 :(得分:9)

以下示例几乎从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);

    }
}

答案 1 :(得分:6)

如果它不是一个太复杂的对象,你可以自己动手,没有任何库。以下是一个示例:

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来获得更复杂的东西和更简单的实现。

答案 2 :(得分:2)

如果我们以GSON格式解析服务器的所有模型类,那么这是将java对象转换为JSONObject的最佳方法。在下面的代码中,SampleObject是一个转换为JSONObject的java对象。

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