Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与Android共享Java项目中的模型对象_Java_Android_Jackson_Gson_Dalvik - Fatal编程技术网

与Android共享Java项目中的模型对象

与Android共享Java项目中的模型对象,java,android,jackson,gson,dalvik,Java,Android,Jackson,Gson,Dalvik,与Android共享常规java项目中的模型对象的最佳方式是什么?我遇到的问题是,这些域模型具有Android不支持的注释。例如javax.xml.bind.annotation.XmlElement、XmlAttribute等。在服务器端,我们使用Jackson进行序列化和反序列化。因此,在Android上使用相同的方法会导致应用程序崩溃(API级别16,带有java.lang.NoClassDefFoundError:javax/xml/bind/annotation/XmlElement,

与Android共享常规java项目中的模型对象的最佳方式是什么?我遇到的问题是,这些域模型具有Android不支持的注释。例如javax.xml.bind.annotation.XmlElement、XmlAttribute等。在服务器端,我们使用Jackson进行序列化和反序列化。因此,在Android上使用相同的方法会导致应用程序崩溃(API级别16,带有java.lang.NoClassDefFoundError:javax/xml/bind/annotation/XmlElement,在18+上工作),但我不希望在Android中复制这些类。有人在Android中使用pojo做这样的注释吗

示例类:

public class StoreInfo {
   @JsonDeserialize(using = OpearingHoursDeserializer.class)
   OpearingHours operatingHours
...
   @XmlElement(name = "hoursOfOperation")   // Annotation not present in Android
   public OperatingHours getOperatingHours() {
       return this.operatingHours;
   }
}

你为什么不在android端也使用jackson呢?如果它可以序列化您的数据,那么它也应该能够在android上对其进行反序列化。
一些代码示例会很好。

这并不能回答问题,但您可以下载缺少的库并自己将其添加到项目中。如果你使用的是Android Studio,Maven很容易做到这一点。Android不支持javax注释。我正在使用Jackson库,它可以在新版本上运行。只在较旧的api级别崩溃。我在android端使用Jackson。我甚至试过格森。问题是关于重用这些模型对象,这些对象包含android不支持的注释。一些代码可能会有帮助,并更好地描述您的问题。服务器端使用的型号是什么?只是为了发送数据,还是也用JPA注释?下一个问题是,您是否负责服务器代码?例如,你必须使用xml还是可以切换到json。我已经用一个例子更新了这个问题。没有JPA注释。它们有xml和jackson注释,在SpringMVC应用程序中用于生成JSON和xml形式的响应体。在应用程序端,我们只做JSON。尝试使用相同的模型,这样我就不必在应用程序中复制模型对象。否则它将是没有注释的对象的精确副本。您在Jackson上使用的版本是什么?您是否包括jackson模块jaxb注释模块?我没有包括jaxb注释模块。我遇到的问题是javaxbind注释,它是Java的一部分,在Android中不存在。