Я хочу сохранить объект Java (состояние объекта) или отправить ему другое приложение с использованием сетевого потока. Я пришел с двумя вариантами Как у меня есть этот объект поддержкиGson vs JAXB для сохранения java-объекта (состояние объекта)
Note note = new Note();
note.setId(123);
note.setName("Test Name");
1. GSON
String json = new GsonBuilder().create().toJson(note);
Systme.out.println(json);
2. JAXB
JAXBContext jaxbContext = JAXBContext
.newInstance(Note.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter sw = new StringWriter();
jaxbMarshaller.marshal(note, sw);
String xmlString = sw.toString();
System.out.println(xmlString);
Как Gson эти
Gson gson = new GsonBuilder().registerTypeAdapter(Id.class, new IdTypeAdapter()).enableComplexMapKeySerialization().serializeNulls().setDateFormat(DateFormat.LONG).setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).setPrettyPrinting().setVersion(1.0).create();
Какой из них рекомендуется? С точки зрения:
- Поддержка версий
- поле Именование поддержка
обнажая или игнорировании поле
и т.д.