私の質問は本当に基本的なものです.FasterXML/Jackson Javaライブラリにnew Gson().toJson(Object)に相当するものはありますか?
はいの場合、どちらのパフォーマンスが優れていますか?
ありがとう
私の質問は本当に基本的なものです.FasterXML/Jackson Javaライブラリにnew Gson().toJson(Object)に相当するものはありますか?
はいの場合、どちらのパフォーマンスが優れていますか?
ありがとう
@Zuttyが提案したように:
ジャクソンでは new ObjectMapper().writeValueAsString(Object)
試してみましたが、com.fasterxml.jackson.databind.JsonMappingExceptionが発生します
com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain: com.learnkeeper.shared.entities.RootBook["permissionRef"]->com.googlecode.objectify.impl.ref.LiveRef["key"]->com.googlecode.objectify.Key["root"])
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter._handleSelfReference(BeanPropertyWriter.java:781)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:569)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:129)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3385)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2779)
new Gson ().toJson(Object)を使用すると、素敵なJsonが得られます。
{"id":4512395720392704,"origin":"FRENCH","target":"ENGLISH","wordKeys":[],"name":"Test","creation":"Aug 11, 2015 8:43:02 PM","modification":"Aug 11, 2015 8:43:02 PM","permissionRef":{"key":{"raw":{"kind":"Permission","id":6737807255011328}}},"lastVersion":true}
追加情報:ログに記録したいすべてのJava オブジェクトがjava.io.Serializableを実装しています
takipi の人々は、gson と jackson の両方を含む、いくつかの json パーサーのパフォーマンス比較を行いました。解析されるドキュメントの種類に依存することがわかりました。Gson はドキュメントが小さいほど高速であり、jackson はドキュメントが大きいほど高速です。3 番目の選択肢である json.simple は、サイズの大きなドキュメントと小さなドキュメントの両方で、より一貫したパフォーマンスを提供します。