개발관련/other

JSON는 객체에서 배열 마지막 항목에 후행 쉼표를 허락하는가?

Rateye 2021. 9. 9. 12:05
728x90
반응형
질문 : JSON 객체에서 후행 쉼표를 사용할 수 있습니까?

JSON 개체 또는 배열을 수동으로 생성 할 때 개체 또는 배열의 마지막 항목에 후행 쉼표를 남기는 것이 더 쉽습니다. 예를 들어 문자열 배열에서 출력하는 코드는 다음과 같을 수 있습니다 (C ++에서 유사 코드).

s.append("[");
for (i = 0; i < 5; ++i) {
    s.appendF("\"%d\",", i);
}
s.append("]");

당신에게 같은 문자열을 제공

[0,1,2,3,4,5,]
    

허용됩니까?

답변

불행히도 JSON 사양 은 후행 쉼표를 허용하지 않습니다. 이를 허용하는 몇 가지 브라우저가 있지만 일반적으로 모든 브라우저에 대해 걱정해야합니다.

일반적으로 문제를 해결하고 실제 값 앞에 쉼표를 추가하면 다음과 같은 코드가 생성됩니다.

s.append("[");
for (i = 0; i < 5; ++i) {
  if (i) s.append(","); // add the comma only if this isn't the first entry
  s.appendF("\"%d\"", i);
}
s.append("]");

for 루프의 추가 코드 한 줄은 거의 비싸지 않습니다.

어떤 형태의 사전에서 JSON으로 구조를 출력 할 때 사용한 또 다른 대안은 각 항목 뒤에 항상 쉼표를 추가 한 다음 (위에서처럼) 끝에 쉼표가없는 더미 항목을 끝에 추가하는 것입니다 (하지만 그것은 게으른;->)입니다.

불행히도 어레이와 잘 작동하지 않습니다.

출처 : https://stackoverflow.com/questions/201782/can-you-use-a-trailing-comma-in-a-json-object
728x90
반응형