JSON은 스칼라, 배열 / 목록 및 맵과 같은 데이터 구조 (Java 동등 항목)를 지원합니다.
Set
JSON에서는 A 가 기본적으로 지원되지 않습니다.
JSON에서 집합을 나타내는 여러 가지 방법에 대해 생각했습니다.
[1]-목록으로
그러나, 목록, 자신의 순서가 다음과 같은 두 가지 목록 때문에, ["a", "b"]
그리고 ["b", "a"]
목록으로 동일하지 않습니다,하지만 그들은 세트로 동일해야합니다.
[2]-지도
맵의 키 세트를 사용하고 값을 무시하십시오.
그러나 표준 비교를 사용하면 두 가지가 맵과 동일하지 않습니다
{"a": "foo", "b": "bar"}
, {"a": null, "b": null}
[3]-특별한 가치가있는지도
스칼라를 사용 0
하거나 말하고 null
맵의 모든 키 값으로 강제 설정하십시오.
{"a": 0, "b": 0}
이렇게하면 표준 비교 도구에서 키 순서가 변경 되더라도 개체가 동일합니다.
그러나이 기술은 JSON 문서를 관련없는 데이터로 오염시킵니다.
[4]-주문 목록
첫 번째 제안으로 돌아가지만 이번에는 주문 목록으로 제공합니다. 이런 종류의 비교 문제를 해결합니다.
그러나 정렬의 복잡성을 염두에 두어야하며, 정렬 된 목록은 그렇지 않지만 맵 표기법은 중복을 처리합니다. 예:
{"a": 400, "a": 9}
로 처리 {"a": 9}
되지만 ["g", "g"]
항상입니다 ["g", "g"]
.
모든 것을 말하면, 목록 표기법이 더 분명한 것처럼 보이지만 맵 표기법은 키 복제에 더 강력하고 특별한 가치에 대해 일관성을 유지하기가 어렵습니다 ( null
좋은 선택 인 것처럼 보이지만).
어떻게 생각해? JSON에서 세트를 어떻게 표현 하시겠습니까?
추신
질문은 단지 JSON에 관한 것입니다. yaml과 같은 다른 형식도 사용할 수 있습니다. 아직도...