2016-06-07 2 views
0

이것은 내가 지금까지 가지고 있지만 키를 선택하는 정규 표현식입니다. 난 단지 값의 모든 항목을 선택합니다 : https://regex101.com/r/fA5cP9/1RegEx를 사용하여 JSON에서 Keys가 아닌 모든 문자열 값을 얻으려면 어떻게해야합니까?

{ 
    "contact": { 
     "name": "John Doe", 
     "label": "Web Developer", 
     "email": "[email protected]", 
     "phone": "(123) 123-1234", 
     "website": "www.example.com", 
     "profiles": [{ 
      "network": "LinkedIn", 
      "url": "www.linkedin.com" 
     }] 
    } 
} 
+0

왜 정규식으로이 문제를 해결하기 위해 노력하고있다 :

지금 당신은 그것을 다시 구문 분석 후, JSON을 캐릭터 라인 화 교체품을하고해야합니까? – Xufox

+0

더 좋은 방법이 있습니까? 모든 값의 단일 배열을 만들어야합니까? – user1869257

+0

또한 모든 값 목록을 얻은 후에 실제로 달성하려는 것은 무엇입니까? JSON의 목적은 이미 논리적 구조로 데이터를 구성하는 것입니다. 왜 이미 구성된 값을 목록에서 추출하려고합니까? – Xufox

답변

1

를이 정확히 해결하는 실제 문제가되지 않습니다 때문에,이 정규식 접근 방식에 충실 아마 가장 쉬운 방법.

귀하의 RegEx가 거의 정확합니다. 한 가지만 잊었습니다. 키와 값을 구별하는 유일한 방법은 둘 사이의 콜론입니다. 각 값은 이고 콜론은이므로 RegEx를 \:\s?\"(.*?)\"으로 변경해야합니다. \s?은 콜론 뒤에 공백이 있더라도 작동하는지 확인합니다.

var resume = { 
    "contact": { 
     "name": "John Doe", 
     "label": "Web Developer", 
     "email": "[email protected]", 
     "phone": "(123) 123-1234", 
     "website": "www.example.com", 
     "profiles": [{ 
      "network": "LinkedIn", 
      "url": "www.linkedin.com" 
     }] 
    } 
}; 

var greekedResume = JSON.parse(JSON.stringify(resume) 
    .replace(/:\s?\"(.*?)\"/g, ":\"Lorem ipsum\"")); 
관련 문제