2009-12-22 2 views
0

큰 따옴표를 사용하지 않는 데이터 교환 형식을 사용하고 싶습니다. 어쩌면 JSON 기반의 무언가 일 것입니다 :JSON을 데이터 교환 형식으로 구문 분석

{param:value,param:value,param:{[{param:value,param:value}, {param:value,param:value}]}} 

PHP와 같은 구문 분석에 대해 어떻게해야합니까? 정규식을 통해해야할까요?

+0

따옴표가 잘못 되었습니까? – SLaks

+1

이것은 문제가 인용 부호가 아닌 것처럼 들리는 대신, barfs를 사용하는 코드 (정규식 기반) 일 것입니다. 문제를 은폐하기 위해 다른 데이터 형식을 구형 화하는 대신 깨진 코드를 수정하는 것이 좋습니다. –

+0

아니면 SQL 주입. – SLaks

답변

1

JSON을 사용하지 않고 사용 가능한 라이브러리 및 도구를 활용 해보세요. This blog entry는 PHP에서 JSON 구문 분석기를 자세히 설명합니다. PHP 5.2.0 이후 수 있습니다 PHP에서 JSON 확장이

는 JSON 데이터를 처리하는 것입니다. 두 가지 기능 : json_encode() 및 json_decode()는 입니다. PHP를 통해 JSON 데이터를 변환하고 파싱하는 데 매우 유용합니다.

잘 정의되어 있고 잘 테스트 된 옵션 (JSON, XML, Google 프로토콜 버퍼, YAML)이 너무 많으면 다른 형식을 만드는 것이 반복적이고 오류가 발생하는 것처럼 보입니다.

+0

JSON은 문자열에 따옴표를 사용합니다. – SLaks

+1

나는 알고있다. 그리고 나는 여전히 그것이 잘못된 설계 결정이라고 주장한다. 아마도 이것을 피할 수있는 좋은 이유가있을 수 있지만 표현되지 않았습니다. –

+0

당신은 맞습니다. 그러나 묻는 질문에 대답하지 않습니다. – SLaks

2

형식에서 따옴표를 사용하지 않으면 무엇이 중요합니까? 기회가 있다면 그 요구 사항을 없애기 위해 변경할 수있는 것이 있습니다 (더 좋을 것입니다).

일반 표현식을 사용하여 JSON 형식 형식을 구문 분석하는 한 이 아닙니다. 이것은 BAD 아이디어입니다. JSON과 같은 재귀 구조를 구문 분석하기 위해 정규 표현식을 사용하지 않았습니다. 적어도 재귀를 다루려고 시도 할 때 필요로하는 많은 정규 표현식의 성능에 문제가있을 수 있습니다. 최악의 경우, 처음에는 재귀를 매치하고 파싱하는 방법을 정하는 시도를하는 것이 곤란합니다. 제안 된

귀하의 형식뿐만 아니라 자신의 문제를 가지고 어떻게 당신은 키의 값에 ,, {, 또는 :을 구별하고 형식의 실제 ,, {, 또는 :는 부품 수 있습니까? 키 또는 값 이름의 공백은 어떻게 처리합니까?

1

XML을 사용할 수 있으며 속성을 사용하지 않을 수 있습니다. 따옴표가있는 헤더도 피해야합니다.

관련 문제