Получите значение JSON, равное локальной переменной

#json #typescript

Вопрос:

У меня есть функция в Typescript, которая хранит переменную, содержащую строку, равную свойству локального файла JSON.

Я хочу знать, как я могу получить значение свойства с тем же именем из локального файла JSON.

Это мои локальные файлы JSON:

 { 
    "asse": {
        "driveId": "0AcUk9PVA",
        "folderId": "1ouono5dPyhxZPmU",
        "file": {
            "CO": "fileIdCo",
            "ES": "fileIdEs",
            "AR": "fileIdAr",
            "MX": "fileIdMx",
            "fileRange": "Ser, Work"
        }
    }
 

}

Это мой текущий код, но я не могу получить доступ к этому свойству в своем JSON:

 import * as getProperty from '../properties.json'

    function getIdSheet() {

        let country = 'CO'

        let id = getProperty.asse.file.country;

    }
 

Это показывает мне ошибку, что свойство country не существует, я не знаю, как использовать эту переменную в качестве свойства JSON

Это то, что я хочу получить:

 let id = 'fileIdCo';
 

Комментарии:

1. Я в замешательстве, это правильный файл JSON? Там нет никакой country собственности, даже vtsFile или assets хотя бы.

2. @Balastrong country В файле JSON нет свойства, я хочу взять свойство CO файла JSON, но передать ему переменную, в которой хранится строка

Ответ №1:

Ошибка верна, так как в вашем JSON нет никакого свойства с именем country .

То, что у вас там есть, — это объект , называемый file , который имеет несколько полей, таких как CO , ES или AR .

Если вы хотите получить доступ к полю CO программно, вам нужно передать его в виде строки. Что-то вроде этого:

 var getProperty = JSON.parse(`{ 
    "asse": {
        "driveId": "0AcUk9PVA",
        "folderId": "1ouono5dPyhxZPmU",
        "file": {
            "CO": "fileIdCo",
            "ES": "fileIdEs",
            "AR": "fileIdAr",
            "MX": "fileIdMx",
            "fileRange": "Ser, Work"
        }
    }
}`);

const country = "CO";

console.log(getProperty.asse.file[country]) 

Если вы измените значение country , вы сможете решить, какое из них читать.