programing

JSON 키는 고유해야 합니까?

closeapi 2023. 4. 1. 09:19
반응형

JSON 키는 고유해야 합니까?

다음 질문은 제가 이전에 질문했던 것과 관련이 있습니다.간단한 JSON 해석 도움말(JAVA ME용 JSON 사용)

JSON 키는 고유해야 합니까?예를 들어, (JSON ME를 사용한) 다음 XML 해석에 문제가 있었습니다.

{
  "name" : "JACK",
  "name" : "JILL",
  "name" : "JOHN",
  "name" : "JENNY",
  "name" : "JAMES",
  "name" : "JIM"
}

그리고, 분명히, 열쇠가 유일해야 하기 때문인 것 같아요.나는 단지 그것이 모든 경우에 사실인지 아닌지 궁금할 뿐이다.예를 들어 JSON ME 이외의 것을 사용하고 있는 경우, 이러한 이름을 모두 해석할 수 있습니까?

감사해요.

같은 이름의 키를 여러 개 사용하는 경우 오류는 발생하지 않지만 JSON에서는 같은 이름의 마지막 키가 사용됩니다.

이 경우 키 "name"은 여러 개의 키 "name"이 아닌 어레이를 값으로 포함하는 것이 좋습니다.동일한 오브젝트나 "물건"이 충돌하는 두 개의 이름 또는 두 개의 동일한 속성을 갖는 것은 별로 의미가 없습니다.

예:

{
  "name" : [ "JOHN", "JACK", "...", ... ]
}

RFC 4627부터:

오브젝트 구조는 0개 이상의 이름/값 쌍(또는 멤버)을 둘러싼 한 쌍의 곱슬 괄호로 표시됩니다.이름은 문자열입니다.각 이름 뒤에는 이름과 값을 구분하는 콜론이1개씩 붙습니다.콤마 하나로 다음 이름과 값을 구분합니다.개체 내의 이름은 고유해야 합니다.

jQuery는 해석할 수 있습니다.하지만 접속을 시도하면 마지막 값만 반환됩니다.

http://jsfiddle.net/MQmM4/2/ 를 확인해 주세요.

파싱은 가능하지만 같은 키를 사용하면 값이 덮어쓰게 됩니다.

어레이를 사용하여 생각할 수 있는 솔루션을 다음에 나타냅니다.배열 인덱스만 사용

the_json_array.getJSONObject(0);


{"nameList":
[{"name" : "JACK"},
{"name" : "JILL"},
{"name" : "JOHN"},
{"name" : "JENNY"},
{"name" : "JAMES"},
{"name" : "JIM"}]}

JSON 개체는 다음과 같습니다.

public JSONObject(Map<?, ?> map) {
    this.map = new HashMap<String, Object>();
    if (map != null) {
        for (final Entry<?, ?> e : map.entrySet()) {
            final Object value = e.getValue();
            if (value != null) {
                this.map.put(String.valueOf(e.getKey()), wrap(value));
            }
        }
    }
}

JSON 오브젝트는 기본적으로 키 값 쌍을 포함하는 해시 맵입니다.

이래서 매번 덮어쓰게 되는 거야.이를 피하기 위해

  1. 고유한 키 값이 있어야 합니다.
  2. 또는 키 값 쌍을 개별 개체로 배열로 래핑해야 합니다.

JSON에 대한 자세한 내용은 이 JSON Object Java 구현을 참조하십시오.

언급URL : https://stackoverflow.com/questions/5306741/do-json-keys-need-to-be-unique

반응형