10000 개가 넘는 행이있는 json 파일이 있습니다. 내가 모든 행을 필터링 할일부 (값) 인 필드 값을 기준으로 json-map 개체 필터링
{"id":1,"child_id":1822925634,"parent_id":-1,"name":"victor"}
{"id":2,"child_id":1266710134,"parent_id":25,"name":"victor"}
{"id":3,"child_id":572534000,"parent_id":-1,"name":"simone"}
.
.
.
{"id":10575,"child_id":572534781,"parent_id":135,"name":"victor"}
이 -1에 동일한을 PARENT_ID : 당신은 아래의 데이터 형식을 볼 수 있습니다.
먼저 내 코드는 파일 내용을 읽은 다음 줄 바꿈으로 분할합니다.
val file = new File("./myFile.json")
val jsonContent = FileUtils.readFileToString(file)
JSON.globalNumberParser = {input : String => Integer.parseInt(input)}
val jsonArray = jsonContent.split("\n").map(x=>JSON.parseFull(x).get.asInstanceOf[Map[String,String]])
지금까지 필자는 4 개의 키 - 값 쌍을 가진 맵 객체를 사용했습니다 (모든 것이 여기까지 괜찮습니다). 조금 디버그하려면 온도은 "Some (-1)"을 예상대로 반환합니다.
val temp = jsonArray(2).get("parent_id")
는 지금, 나는 PARENT_ID
val selectedRows = jsonArray.filter(_.get("parent_id")=="-1").map(_.get("name"))
에 따라 jsonArray를 필터링 할 그러나 빈지도 개체를 반환합니다. 문제는 방정식이 만족스럽지 않다는 것입니다. 나는 ("PARENT_ID") == 시도 "-1" 또는 "일부는 (-1)" 또는 일부 ("- 1")
감사합니다. 정수 값을 가져올 것으로 예상하지 않았습니다. –