#java #android #json #type-conversion #jsonobject
#java #Android #преобразование типов #json
Вопрос:
мне нужно преобразовать 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();
}
Но на этот раз мне не нужен файл.
Комментарии:
1. Для этого есть много библиотек: Jackson, Jettison. Вы также можете использовать JAXB с MOXy.
Ответ №1:
Если мы анализируем все классы моделей сервера в формате GSON, то это лучший способ преобразовать объект Java JSONObject.In
в приведенный ниже код SampleObject
— это объект Java, который преобразуется в JSONObject
.
SampleObject mSampleObject = new SampleObject();
String jsonInString = new Gson().toJson(mSampleObject);
JSONObject mJSONObject = new JSONObject(jsonInString);
Комментарии:
1. Я думаю, что это самый простой, простой и эффективный способ 🙂
Ответ №2:
Если это не слишком сложный объект, вы можете сделать это самостоятельно, без каких-либо библиотек. Вот пример того, как:
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 для более сложных вещей и менее громоздкой реализации, если вы не возражаете против дополнительной зависимости.
Комментарии:
1. В итоге я сделал что-то вроде этого 🙂
2. Измените последнюю строку на JSONObject=gson . toJSON(demo) не demo.toJSON()
Ответ №3:
Приведенный ниже пример был в значительной степени взят из руководства mkyongs. Вместо сохранения в файл вы можете просто использовать 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. нужна ли мне для этого библиотека Gson?
2. Да, вам нужно добавить библиотеку Google gson.
Ответ №4:
Вот простой способ преобразовать объект Java в объект JSON (не строку Json)
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.simple.parser.JSONParser;
JSONObject jsonObject = (JSONObject) JSONValue.parse(new ObjectMapper().writeValueAsString(JavaObject));
Комментарии:
1. Значение JSON принадлежит какому пакету?
2. Это должно быть:
JSONObject jsonObject = new JSONObject(new ObjectMapper().writeValueAsString(JavaObject));
Ответ №5:
Как получить JsonElement из Object:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.*;
final ObjectMapper objectMapper = new ObjectMapper();
final Gson gson = new Gson();
String json = objectMapper.writeValueAsString(source);
JsonElement result = gson.fromJson(json, JsonElement.class);