programing

여러 어레이가 있는 JSON 개체를 만들려면 어떻게 해야 합니까?

bestprogram 2023. 2. 26. 16:26

여러 어레이가 있는 JSON 개체를 만들려면 어떻게 해야 합니까?

JSON을 사용해 본 적이 없기 때문에 구문은 잘 모릅니다.

현재 다른 데이터를 포함하는 어레이가 여러 개 있습니다.

하나의 JSON 오브젝트를 만들고 싶습니다.이 오브젝트에는 각각 여러 개의 데이터가 포함된 여러 어레이가 포함되어 있습니다.

예.

자동차라고 불리는 물체로, 각각 다른 차종을 위한 여러 배열이 들어 있습니다.각 어레이에는 다른 유형의 데이터(예: 도어 수)와 함께 자동차 모델이 포함됩니다(단순히 가상의 예에 불과함).

예를 들어 구문을 설명해 주시면 감사하겠습니다.

가장 바깥쪽 레벨에서 JSON 오브젝트는{마지막으로 a로 끝납니다.}.

샘플 데이터:

{
    "cars": {
        "Nissan": [
            {"model":"Sentra", "doors":4},
            {"model":"Maxima", "doors":4},
            {"model":"Skyline", "doors":2}
        ],
        "Ford": [
            {"model":"Taurus", "doors":4},
            {"model":"Escort", "doors":4}
        ]
    }
}

JSON이 데이터라는 변수에 할당되어 있는 경우, JSON에 액세스 하는 방법은 다음과 같습니다.

data.cars['Nissan'][0].model   // Sentra
data.cars['Nissan'][1].model   // Maxima
data.cars['Nissan'][2].doors   // 2

for (var make in data.cars) {
    for (var i = 0; i < data.cars[make].length; i++) {
        var model = data.cars[make][i].model;
        var doors = data.cars[make][i].doors;
        alert(make + ', ' + model + ', ' + doors);
    }
}

또 다른 접근법(자동차 모델에 인덱스 배열이 아닌 연관 배열 사용):

{
    "cars": {
        "Nissan": {
            "Sentra": {"doors":4, "transmission":"automatic"},
            "Maxima": {"doors":4, "transmission":"automatic"}
        },
        "Ford": {
            "Taurus": {"doors":4, "transmission":"automatic"},
            "Escort": {"doors":4, "transmission":"automatic"}
        }
    }
}

data.cars['Nissan']['Sentra'].doors   // 4
data.cars['Nissan']['Maxima'].doors   // 4
data.cars['Nissan']['Maxima'].transmission   // automatic

for (var make in data.cars) {
    for (var model in data.cars[make]) {
        var doors = data.cars[make][model].doors;
        alert(make + ', ' + model + ', ' + doors);
    }
}

편집:

수정: JSON 개체는 다음 문자로 시작합니다.{으로 끝나다}단, JSON 어레이(최외층)는 다음과 같이 시작하는 것도 유효합니다.[으로 끝나다].

또, 원래의 JSON 데이터의 중대한 구문 에러도 수정되고 있습니다.JSON 개체의 모든 키 이름은 큰따옴표로 묶어야 하며 JSON 개체 또는 JSON 배열의 모든 문자열 값도 큰따옴표로 묶어야 합니다.

참조:

제가 읽고 있는 좋은 책: Nicholas C. Zakas 3rd Edition의 웹 개발자용 Professional JavaScript에는 JSON 구문에 대한 다음과 같은 정보가 있습니다.

"JSON 구문에서는 세 가지 유형의 값을 표시할 수 있습니다."

관심 있는 어레이에 대해서는 다음과 같이 기재되어 있습니다.

"array는 JavaScript의 배열 리터럴 표기법을 사용하여 JSON으로 표시됩니다.예를 들어 JavaScript 배열은 다음과 같습니다.

var values = [25, "hi", true];

유사한 구문을 사용하여 JSON에서 동일한 배열을 나타낼 수 있습니다.

[25, "hi", true]

변수나 세미콜론이 없는 것에 주의해 주세요.어레이와 오브젝트를 함께 사용하여 다음과 같은 보다 복잡한 데이터 컬렉션을 나타낼 수 있습니다.

{
    "books":
              [
                {
                    "title": "Professional JavaScript",
                    "authors": [
                        "Nicholas C. Zakas"
                    ],
                    "edition": 3,
                    "year": 2011
                },
                {
                    "title": "Professional JavaScript",
                    "authors": [
                        "Nicholas C.Zakas"
                    ],
                    "edition": 2,
                    "year": 2009
                },
                {
                    "title": "Professional Ajax",
                    "authors": [
                        "Nicholas C. Zakas",
                        "Jeremy McPeak",
                        "Joe Fawcett"
                    ],
                    "edition": 2,
                    "year": 2008
                }
              ]
}

이 어레이에는 책을 나타내는 다수의 오브젝트가 포함되어 있습니다.각 오브젝트에는 여러 개의 키가 있으며, 그 중 하나는 "authors"(작성자), 즉 다른 어레이가 있습니다.객체 및 어레이는 일반적으로 JSON 데이터 구조의 최상위 부분이며(필요하지는 않지만), 다수의 데이터 구조를 생성하는 데 사용할 수 있습니다."

JavaScript 개체를 JSON 문자열로 시리얼화(변환)하려면 JSON 개체 stringify() 메서드를 사용합니다.Mark Linus 답변의 예:

var cars = [{
    color: 'gray',
    model: '1',
    nOfDoors: 4
    },
    {
    color: 'yellow',
    model: '2',
    nOfDoors: 4
}];

cars는 이제 JavaScript 오브젝트입니다.이를 JSON 개체로 변환하려면 다음 작업을 수행합니다.

var jsonCars = JSON.stringify(cars);

그 결과:

"[{"color":"gray","model":"1","nOfDoors":4},{"color":"yellow","model":"2","nOfDoors":4}]"

반대로 하려면 JSON 개체를 JavaScript 개체로 변환합니다(이것을 구문 분석이라고 합니다). parse() 메서드를 사용합니다.자세한 정보가 필요한 경우 해당 용어를 검색하십시오.그 책을 구하거나, 그것은 많은 예시를 가지고 있다.

또 다른 예는 다음과 같습니다.

[  
[  
    {  
        "@id":1,
        "deviceId":1,
        "typeOfDevice":"1",
        "state":"1",
        "assigned":true
    },
    {  
        "@id":2,
        "deviceId":3,
        "typeOfDevice":"3",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":3,
        "deviceId":4,
        "typeOfDevice":"júuna",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":4,
        "deviceId":5,
        "typeOfDevice":"nffjnff",
        "state":"Regular",
        "assigned":true
    },
    {  
        "@id":5,
        "deviceId":6,
        "typeOfDevice":"44",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":6,
        "deviceId":7,
        "typeOfDevice":"rr",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":7,
        "deviceId":8,
        "typeOfDevice":"j",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":8,
        "deviceId":9,
        "typeOfDevice":"55",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":9,
        "deviceId":10,
        "typeOfDevice":"5",
        "state":"Excelent",
        "assigned":true
    },
    {  
        "@id":10,
        "deviceId":11,
        "typeOfDevice":"5",
        "state":"Excelent",
        "assigned":true
    }
],
1
]

어레이를 읽다

$.each(data[0], function(i, item) {
         data[0][i].deviceId + data[0][i].typeOfDevice  + data[0][i].state +  data[0][i].assigned 
    });

JSON 코드를 더 잘 이해하려면 http://www.jsoneditoronline.org/을 사용하십시오.

var cars = [
    manufacturer: [
        {
            color: 'gray',
            model: '1',
            nOfDoors: 4
        },
        {
            color: 'yellow',
            model: '2',
            nOfDoors: 4
        }
    ]
]
Using the below method pass any value which is an array:

Use:
<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.5.0</version>
</dependency>


Input parameter: URL, like 
Example: "$node.[any int value of array].anyKeyWhichInArray"
Example: "$.cars.Nissan.[0].model"





    public String getAnyValueFromResponseBody(String jsonBody, String url) {
        String value = "";
        try {
          value = JsonPath.read(jsonBody, url).toString();
          System.out.println(value);
        } catch (Exception var6) {
          System.error.println("unable to parse "+url);
        }
        return value;
      }

언급URL : https://stackoverflow.com/questions/11197818/how-do-i-make-a-json-object-with-multiple-arrays