Jackson을 사용하여 Scala의 ClassCastException 구문 분석 맵

마르코

다음과 같이 jsonString을 구문 분석 한 후 문제가 발생합니다.

{"AAAA": [3,4], "BBBB": [1,65]}

따라서 주어진 문자열을 다음과 같이 구문 분석합니다.

import org.json4s.jackson.JsonMethods._

val exampleMap = parse("{\"AAAA\": [3,4], \"BBBB\": [1,65] }").values.asInstanceOf[Map[String,List[Int]]]
exampleMap: Map[String,List[Int]] = Map(AAAA -> List(3, 4), BBBB -> List(1, 65))

지금까지는 좋지만 두 번째 수준 목록에 액세스하거나 반복하려고 할 때 다음 예외가 발생합니다.

val value = exampleMap("AAAA")(0)
java.lang.ClassCastException: scala.math.BigInt cannot be cast to java.lang.Integer
at scala.runtime.BoxesRunTime.unboxToInt(tests.sc0.tmp:102)
at my.domain.examples.A$A164$A$A164.value$lzycompute(tests.sc0.tmp:7)
at my.domain.examples.A$A164$A$A164.value(tests.sc0.tmp:7)
at #worksheet#.#worksheet#(tests.sc0.tmp:7) 

내가 무엇을 놓치고 있습니까?

하스 메딕

json4s의 AST 구조가 다음과 같기 때문이라고 생각합니다.

sealed abstract class JValue
case object JNothing extends JValue // 'zero' for JValue
case object JNull extends JValue
case class JString(s: String) extends JValue
case class JDouble(num: Double) extends JValue
case class JDecimal(num: BigDecimal) extends JValue
case class JInt(num: BigInt) extends JValue
case class JBool(value: Boolean) extends JValue
case class JObject(obj: List[JField]) extends JValue
case class JArray(arr: List[JValue]) extends JValue

type JField = (String, JValue)

보시다시피 JInt는 BigInt에 매핑되므로 정수를 BigInt로 가져 오는 것입니다. 그러면 BigInteger가 Integer의 하위 클래스가 아니기 때문에 자동화 된 캐스팅이 작동하지 않습니다.

String 및 List [Int]를 인수로 사용하여 케이스 클래스 맵에 추출기사용해 보셨습니까 ?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

GSON을 사용하여 중첩 된 맵을 구문 분석하는 방법

분류에서Dev

기본값을 사용하여 Scala의 일반 유형 구문 분석

분류에서Dev

Jackson 2.0을 사용하여 JSON 객체 배열 구문 분석

분류에서Dev

Jackson 또는 Gson을 사용하여 JSON 구문 분석

분류에서Dev

TBXML을 사용하여 XML의 루트 요소 구문 분석

분류에서Dev

GSON을 사용하여 ArrayList의 Arraylist 구문 분석

분류에서Dev

XMLTABLE을 사용하여 SOAP의 CDATA 섹션 구문 분석

분류에서Dev

Jackson 주석을 사용하여 jsonarray를 구문 분석하는 방법

분류에서Dev

xpath를 사용하여 tika로 사용자 정의 xml을 구문 분석

분류에서Dev

형식화의 HashMap를 사용하여 문자열을 구문 분석

분류에서Dev

Moshi 및 Retrofit을 사용하여 동적 문자열의 객체 구문 분석

분류에서Dev

Boost-spirit을 사용하여 15 자 이상의 문자열 구문 분석

분류에서Dev

R을 사용하여 함수의 여러 명명 인수 구문 분석

분류에서Dev

Scala combinator 구문 분석을 사용하여 개체의 인스턴스 만들기

분류에서Dev

OCR을 사용하여 영수증 구문 분석 및 분석

분류에서Dev

Jackson을 사용하여 식별자없이 JSON 개체 구문 분석

분류에서Dev

jackson을 사용하여 xml 구문 분석에 대한 개체 중 예외

분류에서Dev

Play Scala에서 Enum에서 Json으로 맵을 구문 분석 할 수 없음

분류에서Dev

BeautifulSoup을 사용하여 웹 페이지의 테이블 구문 분석

분류에서Dev

1 열에 두 개의 값을 사용하여 csv 구문 분석

분류에서Dev

JSoup을 사용하여 복잡한 테이블의 값 구문 분석

분류에서Dev

JParsec을 사용하여 괄호 안의 텍스트 구문 분석

분류에서Dev

토큰을 사용하여 csv 파일의 특정 열만 구문 분석

분류에서Dev

Aeson을 사용하여 Haskell의 URL에서 JSON 데이터 구문 분석

분류에서Dev

정규식을 사용하여 소스의 모든 NS * 변수 구문 분석

분류에서Dev

pyparsing을 사용하여 주어진 범위의 숫자 구문 분석

분류에서Dev

@media 및 키 프레임을 사용하여 CSS의 오류 구문 분석

분류에서Dev

R을 사용하여 혼합 형식의 이름 구문 분석

분류에서Dev

attoparsec을 사용하여 괄호 안의 쉼표로 구분 된 문자열 구문 분석

Related 관련 기사

  1. 1

    GSON을 사용하여 중첩 된 맵을 구문 분석하는 방법

  2. 2

    기본값을 사용하여 Scala의 일반 유형 구문 분석

  3. 3

    Jackson 2.0을 사용하여 JSON 객체 배열 구문 분석

  4. 4

    Jackson 또는 Gson을 사용하여 JSON 구문 분석

  5. 5

    TBXML을 사용하여 XML의 루트 요소 구문 분석

  6. 6

    GSON을 사용하여 ArrayList의 Arraylist 구문 분석

  7. 7

    XMLTABLE을 사용하여 SOAP의 CDATA 섹션 구문 분석

  8. 8

    Jackson 주석을 사용하여 jsonarray를 구문 분석하는 방법

  9. 9

    xpath를 사용하여 tika로 사용자 정의 xml을 구문 분석

  10. 10

    형식화의 HashMap를 사용하여 문자열을 구문 분석

  11. 11

    Moshi 및 Retrofit을 사용하여 동적 문자열의 객체 구문 분석

  12. 12

    Boost-spirit을 사용하여 15 자 이상의 문자열 구문 분석

  13. 13

    R을 사용하여 함수의 여러 명명 인수 구문 분석

  14. 14

    Scala combinator 구문 분석을 사용하여 개체의 인스턴스 만들기

  15. 15

    OCR을 사용하여 영수증 구문 분석 및 분석

  16. 16

    Jackson을 사용하여 식별자없이 JSON 개체 구문 분석

  17. 17

    jackson을 사용하여 xml 구문 분석에 대한 개체 중 예외

  18. 18

    Play Scala에서 Enum에서 Json으로 맵을 구문 분석 할 수 없음

  19. 19

    BeautifulSoup을 사용하여 웹 페이지의 테이블 구문 분석

  20. 20

    1 열에 두 개의 값을 사용하여 csv 구문 분석

  21. 21

    JSoup을 사용하여 복잡한 테이블의 값 구문 분석

  22. 22

    JParsec을 사용하여 괄호 안의 텍스트 구문 분석

  23. 23

    토큰을 사용하여 csv 파일의 특정 열만 구문 분석

  24. 24

    Aeson을 사용하여 Haskell의 URL에서 JSON 데이터 구문 분석

  25. 25

    정규식을 사용하여 소스의 모든 NS * 변수 구문 분석

  26. 26

    pyparsing을 사용하여 주어진 범위의 숫자 구문 분석

  27. 27

    @media 및 키 프레임을 사용하여 CSS의 오류 구문 분석

  28. 28

    R을 사용하여 혼합 형식의 이름 구문 분석

  29. 29

    attoparsec을 사용하여 괄호 안의 쉼표로 구분 된 문자열 구문 분석

뜨겁다태그

보관