如何读取嵌套数组JSON文件并存储到Dictionary对象中

问题描述 投票:0回答:1

我有以下 JSON 配置文件。我想使用 Java 脚本读取 JSON 文件并存储到 Dictionary 对象中。

{
    "DefaultTime": 10,
    "ExpetTime": 30,
    "Environment": "QA",
    "DefaultBrowser": "CHROME"
    "_Envi": [
        {
            "PP": [
                {
                    "Server1": "https://login.com",
                    "UserName": "user1",
                    "Password": "pass1",
                    "UserFullName": "userName1",
                    "UserEmail": "[email protected]",
                    "User2Name": "user1",
                    "User2FullName": "userName2",
                    "User2Password": "pass1",
                    "User3FullName": "user3",
                    "User3Name": "userName3",
                    "User4Name": "user4",
                    "User4FullName": "userName4",
                    "User4Email": "[email protected];"
                }
            ]
        },
        {
            "QA": [
                {
                    "Server": "https://gmail.com",
                    "UserName": "user1",
                    "Password": "pass1",
                    "UserFullName": "userName1",
                    "UserEmail": "[email protected]",
                    "User2Name": "user2",
                    "User2Password": "pass1",
                    "User2FullName": "userName2",
                    "User3Name": "user3",
                    "User3FullName": "userName3",
                    "User4Name": "user4",
                    "User5Name": "userName4",
                    "Password4": "pass2",
                    "User4FullName": "user4",
                    "User5FullName": "user5"
                }
            ]
        },
        {
            "PROD": [
                {
                    "Server": "https://pro.login.com",
                    "UserName": "user1",
                    "Password": "pass1",
                    "UserFullName": "userName1",
                    "UserEmail": "[email protected]",
                    "User2Name": "user2",
                    "User2FullName": "userName2",
                    "User2Password": "pass1",
                    "User3Name": "user3",
                    "User3FullName": "Username3",
                    "User4Name": "user4",
                    "User4FullName": "UserName4",
                    "User4Email": "[email protected]"
                }
            ]
        }
    ]        
}

在上面的 JSON 中,我需要一些基于用户选择的环境特定值。 如果“Environment”:“PP”,它应该需要将以下值存储到字典对象中。

{
    "_Envi": [
        {
            "PP": [
                {
                    "Server1": "https://login.com",
                    "UserName": "user1",
                    "Password": "pass1",
                    "UserFullName": "userName1",
                    "UserEmail": "[email protected]",
                    "User2Name": "user1",
                    "User2FullName": "userName2",
                    "User2Password": "pass1",
                    "User3FullName": "user3",
                    "User3Name": "userName3",
                    "User4Name": "user4",
                    "User4FullName": "userName4",
                    "User4Email": "[email protected];"
                }
            ]
        }
    ] 
}
javascript json nested
1个回答
0
投票

您可以在 JavaScript 中通过读取 JSON 文件、解析它并将特定于环境的值存储在字典对象中来实现此目的:

function readJSONFile() {
    const jsonContent = `Your JSON content`;

    return JSON.parse(jsonContent);
}

function getEnvironmentValues(environment) {
    const jsonObject = readJSONFile(); // Replace this with actual reading from file
    const environmentValues = {};

    if (jsonObject._Envi) {
        const specificEnv = jsonObject._Envi.find(env => env[environment]);
        if (specificEnv) {
            environmentValues[environment] = specificEnv[environment];
        }
    }

    return environmentValues;
}

// Usage: Pass the environment as an argument to get the specific values
const selectedEnvironment = "PP"; 
const environmentDictionary = getEnvironmentValues(selectedEnvironment);
console.log(environmentDictionary);
© www.soinside.com 2019 - 2024. All rights reserved.