0

Can someone help me to fix this, I am trying to debug this method after upgrading from java conversion to java convertors. I am very new to scala.

def parse(table: String,json: String): Either[Map[String, _], Map[String, Object]] = {
    try {

      val parsedMap = jsonObjectMapper.readValue(json, classOf[MessageDetails])

      //Convert from class type to Map type
      val javaMap = jsonObjectMapper.convertValue(parsedMap,classOf[java.util.Map[String,Object]])

      val msgBodyContent = javaMap.get("MessageDetails").asInstanceOf[java.util.LinkedHashMap[String,Object]]

      // Move messageBody content to top level
      var outMap = javaMap
      if (msgBodyContent != null) {
        outMap = javaMap - "MessageDetails" ++ msgBodyContent
      }

      Right(outMap.toMap)

    } catch {
      case e: Exception =>
        logger.error("unable to parse JSON", e)
        Left(createErrorRec(json,"JSON_PARSE_ERROR",e.getMessage,table))
    }

  }

getting error

value - is not a member of java.util.Map[String,Object] & 
value toMap is not a member of java.util.Map[String,Object]
anons
  • 1
  • Does this answer your question? [What is the difference between JavaConverters and JavaConversions in Scala?](https://stackoverflow.com/questions/8301947/what-is-the-difference-between-javaconverters-and-javaconversions-in-scala) – Tim Moore Sep 22 '22 at 04:21
  • 1
    In brief, `JavaConverters` does not implicitly convert Scala collections to Java collections, but rather adds `asJava` and `asScala` methods that need to be called explicitly to do the conversion. – Tim Moore Sep 22 '22 at 04:24

0 Answers0