program story

숫자를 '색인'(JSON)으로 사용

inputbox 2020. 11. 8. 09:52
반응형

숫자를 '색인'(JSON)으로 사용


최근에 JSON을 파고 들기 시작했고 현재는 숫자를 "식별자"로 사용하려고하는데 너무 잘 작동하지 않습니다. foo:"bar"잘 작동하지만 0:"bar"그렇지 않습니다.

var Game = {
    status: [
                {
                    0:"val",
                    1:"val",
                    2:"val"
                },
                {
                    0:"val",
                    1:"val",
                    2:"val"
                }
           ]
}

alert(Game.status[0].0);

다음과 같은 방법으로 할 수 있습니까? Game.status[0].0내 인생을 더 쉽게 만들어 줄 것 같은 것. 물론 주위에 다른 방법이 있지만이 방법이 선호됩니다.


JSON은 키 이름 만 문자열로 허용합니다. 이러한 문자열은 숫자 값으로 구성 될 수 있습니다.

그래도 JSON을 사용하고 있지 않습니다. JavaScript 개체 리터럴이 있습니다. 당신은 할 수 있습니다 키에 대한 식별자를 사용하지만, 식별자는 숫자로 시작할 수 없습니다. 그래도 문자열을 사용할 수 있습니다.

var Game={
    "status": [
        {
            "0": "val",
            "1": "val",
            "2": "val"
        },
        {
            "0": "val",
            "1": "val",
            "2": "val"
        }
    ]
}

점 표기법으로 속성에 액세스하는 경우 식별자를 사용해야합니다. 대신 대괄호 표기법 사용 : Game[0][0].

그러나 그 데이터가 주어지면 배열이 더 의미가있는 것 같습니다.

var Game={
    "status": [
        [
            "val",
            "val",
            "val"
        ],
        [
            "val",
            "val",
            "val"
        ]
    ]
}

아마도 어레이가 필요합니까?

var Game = {

    status: [
        ["val", "val","val"],
        ["val", "val", "val"]
    ]
}

alert(Game.status[0][0]);

먼저 JSON이 아닙니다. JSON은 모든 키가 문자열이어야한다고 요구합니다.

둘째, 일반 배열은 원하는 작업을 수행합니다.

var Game = {
  status: [
    [
      "val",
      "val",
      "val"
    ],
    [
      "val",
      "val",
      "val"
    ]
  }
}

을 사용하면 작동합니다 Game.status[0][0]. 점 표기법 ( .0) 과 함께 숫자를 사용할 수 없습니다 .

또는 숫자를 인용 할 수 있습니다 (예 :) { "0": "val" }.... 배열 대신 일반 객체가 있지만 동일한 구문이 작동합니다.


자바 스크립트 객체 속성의 이름은 밑줄 또는 편지 중 하나로 시작하지 않는 경우, 당신은 (같은 점 표기법을 사용하지 못할 Game.status[0].0), 당신은 해야 되는 다른 표기법을 사용합니다 Game.status[0][0].

One different note, do you really need it to be an object inside the status array? If you're using the object like an array, why not use a real array instead?


JSON regulates key type to be string. The purpose is to support the dot notation to access the members of the object.

For example, person = {"height":170, "weight":60, "age":32}. You can access members by person.height, person.weight, etc. If JSON supports value keys, then it would look like person.0, person.1, person.2.


What about

Game.status[0][0] or Game.status[0]["0"] ?

Does one of these work?

PS: What you have in your question is a Javascript Object, not JSON. JSON is the 'string' version of a Javascript Object.

참고URL : https://stackoverflow.com/questions/8758715/using-number-as-index-json

반응형