Tag: 序列化

jackson – 反序列化失败了循环依赖

好的,所以我试图用jacksonjson转换器测试一些东西。 我正在尝试模拟图形行为,因此这些是我的POJO实体 @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = “id”) public class ParentEntity implements java.io.Serializable { private String id; private String description; private ParentEntity parentEntity; private List parentEntities = new ArrayList(0); private List children = new ArrayList(0); // … getters and setters } @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = “id”) public class ChildEntity implements java.io.Serializable { private String […]

jaxrs找不到我的joda.money类型的自定义(de)序列化程序

我已经为joda.money.Money类型编写了我的自定义(de)序列化joda.money.Money 。 我用Object Mapper注册它们。 但是当我部署我的war文件时,它说找不到joda.money.Money类型的序列化器。 import org.joda.money.Money; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; public class MoneyDeserializer extends StdDeserializer { private static final long serialVersionUID = 1L; public MoneyDeserializer() { super(Money.class); } @Override public Money deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { … } } 在ObjectMapper中注册; import org.codehaus.jackson.jaxrs.JacksonJsonProvider; import org.joda.money.Money; import com.fasterxml.jackson.core.Version; import […]

单个自定义序列化程序,用于所有嵌入的带注释的对象,用它们的id替换它们

我有这样的实体: @Entity public Product { @Id public int id; public String name; @ManyToOne(cascade = {CascadeType.DETACH} ) Category category @ManyToMany(cascade = {CascadeType.DETACH} ) Set secondaryCategories; } 和 @Entity public Category { @Id public int id; public String name; @JsonCreator public Category(int id) { this.id = id; } public Category() {} } 是否可以使用注释来注释Category类或category和secondaryCategories属性,这些注释将它们序列化为嵌入时的ID。 现在,当我为id = 1的产品进行GET时,我从服务器获取: { […]

如何在java中序列化ArrayLIst而不会出错?

我只是想输出一个先前创建的ArrayList来序列化它以备将来存储。 但是当我这样做时,我得到了runTime错误“notSerialisableException:Department。 他们是一种序列化arrayList的特殊方式吗? 有人能够告诉我为什么我可能会收到此错误。 这是代码: import java.awt.*; import java.util.*; import java.io.*; import java.io.Serializable; public class tester1ArrayListObjectSave { private ArrayList allDeps = new ArrayList(); private int choice = 0; private String name; private String loc; Department theDepartment; Scanner scan; public static void main(String[] args) { new tester1ArrayListObjectSave(); } public tester1ArrayListObjectSave() { scan = new Scanner(System.in); options(); […]

为什么Scala可以序列化Function而不是PartialFunction?

我有2个函数(其中1个是部分的)在一个对象下类似地定义: val partialFn: scala.PartialFunction[String, Int] = new AbstractPartialFunction[String, Int] { override def isDefinedAt(v: String): Boolean = { counter += 1 if (v == “abc”) true else false } override def applyOrElse[A1 : Int](v: A1, default: A1 => B1): B1 = { counter += 1 if (v == “abc”) { v.length } else { default(v) } […]

NotSerializableException

基本上,我编写了一个程序,在屏幕上绘制形状,并将每个形状保存到ArrayList中。 我想要做的是弄清楚如何将ArrayList保存到文件中,以便我可以稍后再调用它并编辑已存在的形状。 因此,当我使对象Shape可序列化时,我一直在弄清楚为什么我一直得到一个NotSerializableException。 下面是我的代码的保存部分和Shape对象。 save.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ int returnVal = fc.showSaveDialog(BallWorld.this); if(returnVal == JFileChooser.APPROVE_OPTION){ File file = fc.getSelectedFile(); ArrayList list = bp.shapes; FileOutputStream fos = null; ObjectOutputStream oos = null; try{ fos = new FileOutputStream(file); oos = new ObjectOutputStream(fos); oos.writeObject(list); oos.close(); } catch(IOException ex){ ex.printStackTrace(); } } } }); public class Shape […]

如何在ORMLite中指定对象自定义序列化?

我想将一些类型为ParentClass的字段作为json字符串存储到我的数据库中。 我不想使用Serializable接口和DataType.SERIALIZABLE,因为它与序列化类的完整类名绑定。 所以我使用以下代码: class ParentClass { @DatabaseField(persisterClass = MyFieldClassPersister.class) private MyFieldClass myField; } persister类的一种: public class MyFieldClassPersister extends StringType { private static final MyFieldClassPersister singleTon = new MyFieldClassPersister(); public static MyFieldClassPersister getSingleton() { return singleTon; } protected MyFieldClassPersister() { super(SqlType.STRING, new Class[0]); } @Override public Object parseDefaultString(FieldType fieldType, String defaultStr) { return jsonStringToObject(defaultStr); } @Override […]

如何在不重写serialize方法的情况下覆盖特定类的JsonSerializer的isEmpty方法?

我想为isEmpty方法添加自定义行为。 当我从JsonSerializer扩展时 我应该覆盖serialize方法,因为它是抽象的。 我想按原样保留serialize方法并仅覆盖isEmpty方法。

使用Java和Jackson将Json序列化为无需架构的通用结构

我需要序列化JSON而不附加到结果对象的特定模式,例如,某些通用的set / map / hashmap。 作为输入 ,我有一个带有JSON的字符串。 我不知道那个JSON的架构。 作为输出,我想要一个Java对象,如Hashmap或类似的,具有输入的键值序列化。 请注意,输入JSON包含基本字段和Array / List。 我必须使用Java和Jackson(或其他一些库)。 我怎么可能那样做?

在Parcelable中包裹读/写操作时,变量顺序是否重要?

我有一个Parcelable类的以下实现: public class DemoModel implements Parcelable { private String para1; private int para2; public DemoModel(){} protected DemoModel(Parcel in) { para1 = in.readString(); para2 = in.readInt(); } @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeString(para1); parcel.writeInt(para2); } //other methods } 写入/读取包裹时维持秩序是否重要? 为什么?