Работа с JSON ключ в переменную

Поддержка
  • Получить все ключи - далее из этого списка берете - и парасите то что нужно в ту переменную. Можно еще получить все ключи и все значения и собрать два списка, но это зависит от json.

  • @mask said in Работа с JSON ключ в переменную:

    Вы "PAESER_CAR_BRAND" писали руками, нужно что бы название переменой соответствовало ключу и не руками писать, а автоматом распарить или как еще не знаю.

    Вы прислали скриншот, где тоже сами руками создавали переменные BAS. Для чего автоматом создавать переменные я не понимаю, как вы к ним в автоматическом режиме затем хотите обращаться? Вы бы описали изначальную задачу, которую вы таким способом пытаетесь решить

  • @DuckDuck Нужно, что бы переменная была, так получится два списка.

  • @mask ну и - берешь из списка первую - и присваеваешь "этой" переменной, значение из списка 2

  • @DuckDuck Название переменной руками нужно будет писать насколько я понимаю.

  • Screen Shot 2023-08-20 at 15.16.39.png

    через кубики не факт, через js должно получиться.

    js

    var [[LIST_ELEMENT_1]] = [[LIST_ELEMENT_2]];
    
  • @Fox Уже есть программа, изначально получались данные в CSV ,при расспрашивание создавались переменные для использование далее в скрипте . Сейчас чуть логика изменилась данные получаются через json. Сейчас нужно вытащить каждый ключ в отдельную переменную, и ручками прописать. Что бы не писать каждую переменную руками, думаю как это сделать.

    
    var JSON_Obj = { "one":1, "two":2, "three":3, "four":4, "five":5 };
    
        for (var key in JSON_Obj) {
            eval(key + '=' + JSON_Obj[key]);
        log(key)
        log(JSON_Obj[key])
        }
    
    
  • @mask said in Работа с JSON ключ в переменную:

    @Fox Уже есть программа, изначально получались данные в CSV ,при расспрашивание создавались переменные для использование далее в скрипте . Сейчас чуть логика изменилась данные получаются через json. Сейчас нужно вытащить каждый ключ в отдельную переменную, и ручками прописать. Что бы не писать каждую переменную руками, думаю как это сделать.

    
    var JSON_Obj = { "one":1, "two":2, "three":3, "four":4, "five":5 };
    
        for (var key in JSON_Obj) {
            eval(key + '=' + JSON_Obj[key]);
        log(key)
        log(JSON_Obj[key])
        }
    
    

    Ещё раз спрашиваю, как вы в скрипте используете неизвестные ранее названия переменных?

  • @Fox Он хочет сделать переменные по названию ключей из json и присвоить им значения из json. Вроде просто.

  • @DuckDuck said in Работа с JSON ключ в переменную:

    @Fox Он хочет сделать переменные по названию ключей из json и присвоить им значения из json. Вроде просто.

    Да, я это понял с первого предложения, вопрос в том, как и где он эти переменные сможет использовать в скрипте? Ключи в json могут быть совершенно разные, если не знать названия переменных заранее, то как их использовать?

  • @Fox Эти переменные используются в скрипте они были созданы когда расспрашивал CSV

  • @mask said in Работа с JSON ключ в переменную:

    @Fox Эти переменные используются в скрипте они были созданы когда расспрашивал CSV

    Раз вы их создали руками ранее при парсинге csv, то в чём проблема продублировать один раз названия для парсинга json? К чему этот велосипед с автоматическим созданием переменных?

  • Вообщем если это принципиально нужно:

    var JSON_Obj = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 };
    
    for (var key in JSON_Obj) {
        eval("VAR_" + key.toUpperCase() + " = " + JSON_Obj[key]);
    }
    

    Переменные будут [[ONE]], [[TWO]] и т.д. Они будут работать в BAS, но они не будут отображаться в диспетчере переменных. Ну и это как бы говнокод не очень надёжный алгоритм работы скрипта.

  • @Fox А почему они не будут в диспетчере переменных ? чисто для развития.

  • @DuckDuck said in Работа с JSON ключ в переменную:

    @Fox А почему они не будут в диспетчере переменных ? чисто для развития.

    из за eval()

  • @Fox ```

    Спасибо , а так отработает код?

    var JSON_Obj = [[PARSED_JSON_VALUES]];
    
    for (var key in JSON_Obj) {
        eval("VAR_" + key.toUpperCase() + " = " + JSON_Obj[key]);
    }
  • @mask said in Работа с JSON ключ в переменную:

    @Fox ```

    Спасибо , а так отработает код?

    var JSON_Obj = [[PARSED_JSON_VALUES]];
    
    for (var key in JSON_Obj) {
        eval("VAR_" + key.toUpperCase() + " = " + JSON_Obj[key]);
    }
    

    Вам было бы быстрее проверить, чем задавать вопрос здесь, на форуме

  • @Fox Что то не так делаю видимо... "ReferenceError: Can't find variable: Renault" из за того что значение в кавычках ругается?

  • @mask said in Работа с JSON ключ в переменную:

    @Fox Что то не так делаю видимо... "ReferenceError: Can't find variable: Renault" из за того что значение в кавычках ругается?

    В душе не знаю.. Вы ни какие данные не предоставляете, а угадывать я не буду.