2016-06-07 2 views
0

아래에 JSON 데이터가 있습니다. 파이썬을 사용하여 목록, 사전 및 다른 목록을 JSON으로 인코딩합니다. 마지막 JSON 데이터는 지금과 같이 표시됩니다JSON 데이터를 스칼라 목록 및 HashMap으로 구문 분석

"0": [3, 3, 3]List(3,3,3)

수 :

{ "0": [3, 3, 3], "1": { "0": [0, 8, 9], "1": [1, 2, 3, 4, 10, 11], "2": [4] }, "2": [1, 1, 1, 1] }

내 목표는 허용하는 방식으로 JSON 데이터를 추출하는 스칼라 기능의 몇 가지 유형을 작성하는 것입니다

{"0":[0,8,9], ...}List(1,1,1,1)

0이 될 수있는 HashMap[Int,List[Int]]

"2": [1, 1, 1, 1]

원래 파이썬 목록과 사전의 길이는 다양하며, "0", "1", "2"은 목록, 사전 및 목록을이 순서로 표시합니다.

저는 스칼라에 대해 매우 익숙하며 외부 라이브러리를 사용하지 않고이를 수행하는 방법에 어려움을 겪고 있습니다. 나는 스칼라 (내장 된 json 파서)의 새로운 버전을 사용하고 있기 때문에 스프레이 - json을 사용하려고한다.

답변

0

내게 유효한 JSON처럼 보이지 않습니다. 즉, 사용할 수있는 JSON 파서가 작동하지 않습니다. 그 구조가 고정되어 있습니까? 대신 유효한 JSON으로 변환 할 수 있습니다.

예 :

{ 
    "list" : [ 1,1,1], 
    "someotherObject" : { 
     "0" : [1,2,3] 
    }, 
    "anotherList" : [9,8,7] 
} 

그런 다음 Argonaut (예)를 사용하고 지정한 JSON을 사용자가 지정한 객체 유형에 매핑하는 방법을 알려주는 디코더를 정의 할 수 있습니다. http://argonaut.io/doc/codec/

+0

저는 파이썬의'json.dump (list, outfile)'을 사용하고'json.loads (json.dumps (lst)) '를 사용하여 테스트했습니다. 내가 그것을 바로 확인하고 있는지 확실하지 않습니다. 예, 구조는 그림과 같습니다. –

+1

파이썬이 json을 구문 분석하는 방법에 익숙하지 않지만 "[1,1,1] {"0 ": [1,2,3]} [9,8,7]"을 온라인 json 파서에 입력하면 , 그들은 그것을 형식이 잘못된 것으로 간주합니다. – Ren

+0

죄송합니다. 나는 데이터를 json으로 파싱하는 실수를했으나 현재 수정되었습니다. 내 편집 내용을 볼 수 있습니다. –