wadhwasahil
wadhwasahil

Reputation: 468

JsonDeserialize error in Scala

I am trying to use JsonDeserialize class but the IDE is showing compilation error.

GateAnnotation.scala

package com.scryAnalytics.NLPAnnotationController.DAO

import com.scryAnalytics.NLPGeneric.DAO.FeatureMapDeserializer
import org.codehaus.jackson.annotate.JsonProperty
import org.codehaus.jackson.map.annotate.JsonDeserialize
import gate.{FeatureMap, Node}
import gate.annotation.AnnotationImpl

/**
* Created by sahil on 22/11/16.
*/

class GateAnnotation(id: Integer, start: Node, end: Node, types: String, features: FeatureMap) extends
AnnotationImpl(id, start, end, types, features) {

private final  val serialVersionUID: Long = 1L
@JsonProperty
@JsonDeserialize(using = FeatureMapDeserializer.class)
}

FeatureMapDeserializer.scala

package com.scryAnalytics.NLPAnnotationController.DAO

import java.util.Map

import gate.{Factory, FeatureMap}
import org.apache.hadoop.yarn.webapp.hamlet.HamletSpec._Object
import org.codehaus.jackson.JsonParser
import org.codehaus.jackson.map.{DeserializationContext, JsonDeserializer}

class FeatureMapDeserializer extends JsonDeserializer[FeatureMap] {

override def deserialize(jsonParser: JsonParser, deserializationContext: DeserializationContext): FeatureMap = {
val features = jsonParser.readValueAs(classOf[Map[_Object, _Object]])
val featureMap = Factory.newFeatureMap()
featureMap.putAll(features)
 featureMap
} 
}

The error (compilation) is @JsonDeserialize(using = FeatureMapDeserializer.class). The error after hovering over the line is Expression of type FeatureMapDeserializer doesn't conform to expected type Class [ < JsonDeserializer[_]]

I can't figure out the reason, so I look forward to any advice.

Thanks in advance.

Upvotes: 0

Views: 786

Answers (1)

NaHeon
NaHeon

Reputation: 247

You're using Java syntax, not Scala one.

@JsonProperty
@JsonDeserialize(using = classOf[FeatureMapDeserializer])
def foo = ???

Upvotes: 1

Related Questions