2016-07-21 3 views
0

json 스키마에서 요소를 선택적으로 제거하고 싶습니다. 내가 정규식 표현을 사용하여 JSON 스키마에서 socialSecurityNumber로 요소를 제거하고 싶습니다이json 객체에서 데이터를 제거 할 수있는 정규 표현식

[{ 
    "users": [{ 
     "firstName": "Nancy", 
     "socialSecurityNumber": "123-45-6789", 
     "sex": "Female", 
     "id": "1234", 
     "race": "Smith", 
     "lastName": "Logan" 
    }, { 
     "firstName": "Charles", 
     "socialSecurityNumber": "321-54-9876", 
     "sex": "Male", 
     "id": "3456", 
     "race": "White", 
     "lastName": "Clifford" 
    }], 

과 같은 사용자의 더 큰하지만 유사한 배열을 포함하는 JSON 개체를 상상해보십시오. 정규식 표현식은 데이터 쌍의 값이 임의의 문자열이 될 수있는 곳과 같은

"socialSecurityNumber": "whatever value", 

모습을 어떻게 제거 할 것인가?

데이터 쌍의 위치와 후행 쉼표가 있는지 여부는 확실하지 않습니다. 빈과 다음 정규 표현식을 대체

+3

JSON 구문 분석기 대신 정규식을 사용해서는 안됩니다. –

+0

json 객체를 비 직렬화 한 다음 구조를 통해 불필요한 데이터를 제거하도록 제안 하시겠습니까? – Greg

+4

물론입니다. 다른 것은 이상한 실패 조건을 가질 것입니다. – Malvolio

답변

1

시도 :

"socialSecurityNumber": "(\d|\-)", 

그것은이 정보는 2 선에서 분할되어있는 경우 잘못 될 수있는, 또는 SSN이 마지막 사용자가 필드 인 경우, 때문에 이후에는 쉼표가 없을 것 그것.

"socialSecurityNumber" 

이 사용할 수 있습니다 확인하는 문자열이있는 경우

어쨌든, 교체 작업 후 확인합니다. 대체되지 않은 문자열이 여전히 있으면이 정보를 올바르게 제거하기 위해 JSON 구문 분석기가 필요합니다.