JSON

Делитесь модулями
  • @Fox Спасибо, все работает! шайтан-машина!:))

  • Хорошо бы этот вариант со скобками в подсказки добавить. А то не зная, на бубен и эксперименты можно много времени потратить.

  • @Fox Можно вопрос от чайников не совсем по BAS, но по теме ветки?

    [[OBJ]].colors.push("NAME") - я генерю список из строк.
    И в конечном JSON они у меня будет идти под номерами 1, 2, 3 и т.п.

    А как мне передать пару "Ключ" - "Значение" через push ()?
    Например, [[OBJ]].colors.push("GROUP_NAME": "Киш")?

  • @AngelOfAncient said in JSON:

    [[OBJ]].colors.push("GROUP_NAME": "Киш")

    Горшок жив!

    [[OBJ]].colors.push({"GROUP_NAME":"Киш"})
    
  • @Fox А если тоже самое делать через переменные, выходит что-то странное. Например:

    [[A1_OBJ]].colors.push({[[ALL_MATCH]] : [[FIRST_LIST_ELEMENT]]})
    

    Выдаёт вот такое:
    alt text

    То есть вместо значения первой переменной он записывает в массив VAR_Имя_Переменной. Хотя и то, и другое - это строки.

  • @AngelOfAncient said in JSON:

    @Fox А если тоже самое делать через переменные, выходит что-то странное. Например:

    [[A1_OBJ]].colors.push({[[ALL_MATCH]] : [[FIRST_LIST_ELEMENT]]})
    

    Выдаёт вот такое:
    alt text

    То есть вместо значения первой переменной он записывает в массив VAR_Имя_Переменной. Хотя и то, и другое - это строки.

    Должно работать и так, ну попробуйте не использовать сахар

    [[A1_OBJ]].colors.push({VAR_ALL_MATCH:VAR_FIRST_LIST_ELEMENT})
    
  • @Fox said in JSON:

    Должно работать и так, ну попробуйте не использовать сахар

    Всё тоже самое.
    Любая переменная, поставленная в первую позицию, не считывается:
    alt text

    Если ставить просто строку, то она встаёт корректно.

    [[A1_OBJ]].colors.push({"123":VAR_FIRST_LIST_ELEMENT})
    

    alt text

  • @AngelOfAncient

    var obj = {}
    obj[ [[ALL_MATCH]] ] = [[FIRST_LIST_ELEMENT]]
    [[A1_OBJ]].colors.push(obj)
    
  • @Fox Так работает, спасибо. Интересно, почему не работало напрямую, но самое главное, что так работает.

  • @AngelOfAncient said in JSON:

    @Fox Так работает, спасибо. Интересно, почему не работало напрямую, но самое главное, что так работает.

    а оно и не должно было работать, а я забыл :D, ну в ES6 можно было бы записать проще через квадратные скобки

  • @Fox
    Здравствуйте.
    А как быть если необходимо изменить значение ключа с точкой? Возможно ли?
    Добавление круглых скобок для действия «Изменить значение» не помогает...

  • @ausilus said in JSON:

    @Fox
    Здравствуйте.
    А как быть если необходимо изменить значение ключа с точкой? Возможно ли?
    Добавление круглых скобок для действия «Изменить значение» не помогает...

    Я же выше дал ответ:

    7db6f275-8aab-495b-86e4-2d71ca7b6af7-изображение.png

  • @Fox
    Это работает для действия «Получить значение», для действия «Изменить значение» - уже нет.
    Вместо этого добавляется новый элемент:
    Capture.PNG

  • @ausilus said in JSON:

    @Fox
    Это работает для действия «Получить значение», для действия «Изменить значение» - уже нет.
    Вместо этого добавляется новый элемент:
    Capture.PNG

    ну тогда приведите пример исходной строки и вашего запроса. Лучше будет если в виде тестового скрипта

  • @Fox
    Хочу изменить значение ключа "secret.Identity" для примера:

    {
      "members": [
        {
          "name": "Dan Jukes",
          "age": 29,
          "secret.Identity": "Molecule Man"
        },
        {
          "name": "Jane Wilson",
          "age": 39,
          "secret.Identity": "Madame Uppercut"
        }
      ]
    }
    

    JSONPath запросы members[0][age] и members[1][name] меняют значения,
    а members[0][('secret.Identity')] выдает такое:
    Capture.PNG
    Круглые скобки не работают...
    Или я что-то делаю не так?

  • @ausilus said in JSON:

    @Fox
    Хочу изменить значение ключа "secret.Identity" для примера:

    {
      "members": [
        {
          "name": "Dan Jukes",
          "age": 29,
          "secret.Identity": "Molecule Man"
        },
        {
          "name": "Jane Wilson",
          "age": 39,
          "secret.Identity": "Madame Uppercut"
        }
      ]
    }
    

    JSONPath запросы members[0][age] и members[1][name] меняют значения,
    а members[0][('secret.Identity')] выдает такое:
    Круглые скобки не работают...
    Или я что-то делаю не так?

    Это баг, пока можно реализовать через js

    Пример: 2005.xml

  • @Fox
    Работает, спасибо за решение.

  • автор удалил модуль с гитхаба

  • @zaifat said in JSON:

    автор удалил модуль с гитхаба

    lol, этот модуль сейчас встроен в bas

  • @UserTrue это я понял, нафиг тогда тут ссылка не рабочая)