JSON 파서

이것은 사용자가 JSON 구조 내부에 있는 키 값을 찾을 수 있도록 하는 JSON 파서입니다. 질문은 JSON 파서가 필요한 이유입니다. 루프를 작성하여 그렇게 할 수 있습니다. 저를 위해 추가 파서가 필요한 이유는 무엇입니까?

제 마지막 프로젝트에서는 일반적으로 사용되는 기능이 포함된 ProjectUtils 클래스를 사용했습니다. 여기에서 영감을 얻었습니다.

이 파서는 키가 있는 위치에 대한 경로를 제공하는 경우 JSON 구조에서 키를 검색하는 데 사용됩니다.

아래 JSON 구조를 예로 들어 보겠습니다.

{
    "perms": [{
        "changeDefault": "Yes",
        "visible": true,
        "notused": true,
        "testArray": [{
            "TestKey1": "TestVal1",
            "TestKey2": "TestVal2",
            "TestKey3": "TestVal3",
            "TestKey4": "TestVal4"
        }],
        "selectable": true,
        "allAccess": true,
        "defaultOnly": true
    }],
    "avatarUrl": "",
    "cartId": "8ladf51ds65ga6",
    "DeviceDetails": {
        "DeviceName": "MotoXPlay",
        "UDID": "459f8202b2n92h1",
        "Info": {
            "IPDetails": "192.168.3.155",
            "TestMgmtID": "8080",
            "IsPhone": true
        }
    }
}


TestKey4 키의 값을 얻으려면 JSON 구조를 전달한 다음 값이 있는 위치를 전달하면 됩니다.

getNodeValue(JSONStructure, perms.0.testArray.0.TestKey4);

여기서 첫 번째 매개변수는 검색할 JSONStructure입니다.
두 번째 매개변수는 위치입니다. 예제에 따라 perms는 배열 이름, 0번째 인덱스, testArray 및 0번째 인덱스 및 키 TestKey4입니다.

객체를 얻으려면 인덱스를 전달할 필요가 없습니다. isPhone이 true인지 false인지 확인하고 싶다면. 나는 그것을 얻을 수 있었다

getNodeValue(JSONStructure, DeviceDetails.Info.IsPhone);

현재 구현에 따라 getNodeValue 함수는 Java 객체를 반환합니다. 객체로 반환하는 것의 장점은 키가 어떤 유형의 값을 보유하든지 사용자가 반환 값을 예상하지 않고도 해당 값을 얻을 수 있다는 것입니다.

이것은 GitHub repo
사람들이 이것이 도움이 될 것이라고 생각한다면 의견을 남겨주세요. 도움이 되기를 바랍니다.

건배

좋은 웹페이지 즐겨찾기