2009-06-18 2 views
2

루비 보석 json_pure를 사용하고 있으며 구문 분석 오류가 발생하면 오류가 발생한 곳의 행 번호를 확인할 수 없습니다. 루비로 작성된 유효성 검사기를 찾아 내면 줄 번호를 알려줄 것입니다. json 오류를 신속하게 찾기위한 최선의 루비 접근법은 무엇입니까?루비로 json 오류를 찾았습니다

감사합니다.

답변

-4

JSON은 네트워크를 통해 문자열로 전송되기로되어 있으므로 실제로는 한 줄만 있습니다.

+0

을 줄 것이다. 자사의 약 950 라인과 내가 구문 오류를 얻을 때 나는 가시적으로 오류를 식별하거나 나누기/정복 접근을 시작해야합니다. 내가 거기에 더 빨리 오류를 찾을 수있는 뭔가가 있었으면 좋겠다 – Kramer

+1

나는 json 대신에 yml을 사용한다. 설정 파일은 json이다. json은 주로 javascript와 서버 사이의 정보 전달을위한 것입니다. – ErsatzRyan

+0

@ErsatzRyan처럼, yaml을 사용하면 훨씬 편리 할 것입니다. JSON은 설정 파일을위한 최선의 선택이 아니며, 실제로 루비는 JSON을 제대로 지원하지 못한다. 반면 YAML은 설정 파일 용으로 사용됩니다. – rogeriopvl

3

당신은 Kwalify을 시도 할 수 있습니다.

올바른 JSON (또는 YAML)뿐만 아니라 구성 파일이 올바른지 확인하는 데 사용할 수 있으며 오류가 발생한 행 번호를 알려줍니다. 오류에 대한 약간의 컨텍스트.

내가 그것은 나를
ERROR: document12a.json:10:1 [/favorite] flow sequence is not closed by ']'. 

했다 준 자신의 문서에서 샘플 오류 메시지에서 ']'를 제거 그것은 또한 않는 데이터를 원하는 경우에 클래스 생성을 바인딩. 꽤 좋은 구성 관리/유효성 검사 도구 인 것 같습니다.

+0

Kwalify는 YAML 인 JSON을 구문 분석하는 데 유용합니다. 그러나 나는 완벽하게 유효한 JSON을 Kwalify에 던져 넣었으며 "매핑 키가 예상됩니다"와 같은 숨겨진 오류를 보았습니다. (공백 문제이거나 열려있는 중괄호 또는 들여 쓰기에 일관성없는 탭/공백). 현재 Ruby Quiz 응답에서 홈 롤링 JSON 유효성 검사기를 사용하고 있습니다 (사용자가 직접 줄 바꿈 비트를 추가해야하지만 "ws"함수를 약간 조정하면됩니다). http : // blade .nagaokaut.ac.jp/cgi-bin/scat.rb/ruby ​​/ ruby-talk/289855 – PotatoEngineer

+0

답장을 보내 주신 모든 분들께 감사드립니다. 감사! – Kramer

+0

Paul, "매핑 키가 예상됩니다"오류가 발생했습니다. Yajl을 사용하여 구문 분석하고 Kwalify를 사용하여 유효성을 검사하는 것이 더 나았습니다. – Chris

0

그것은 오래된 질문이지만 현재 Ruby에서 여전히 문제입니다.

Ruby의 기본 JSON 구문 분석기는 구문 분석 오류가 발생한 행 번호 및/또는 열 번호를 알려주지 않습니다. 그냥 '구문 분석'오류가 그게 전부 야.

파서를 Oj으로 변경하고 MultiJson 보석과 함께 사용할 수 있습니다. Oj는 훌륭합니다. 매우 빠르며 파싱 오류가 발생한 줄과 열 번호도 표시합니다! 큰. 한 줄 매우 큰 JSON (170킬로바이트 +)에 대한

샘플 오류가 OJ 내가 XML 대신 애플리케이션의 구성으로 사용하는 열에 102421.

.../adapters/oj.rb:15:in `load': unexpected character at line 1, column 102421 [parse.c:666] (MultiJson::ParseError) 
관련 문제