Задать вопрос
Ответы пользователя по тегу JSON
  • Замена строк в json?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    это можно сделать довольно легко с помощью gron
    допустим есть два сопоставимых файла 1.json и 2.json
    необходимо заменить значение ключа iata_code в первом файле на значения из второго файла.
    1.json
    {
        "json": 1,
        "city": "Лондон",
        "airports": [
          {
            "name": "Хитроу",
            "city": "Лондон",
            "country": "Великобритания",
            "iata_code": "ЛХР"
          },
          {
            "name": "Хитроу2",
            "city": "Лондон2",
            "country": "Великобритания2",
            "iata_code": "ЛХР2"
          }
        ]
    }

    2.json
    {
      "json": 2,
      "city": "London",
      "airports": [
        {
          "name": "Heathrow",
          "city": "London",
          "country": "United Kingdom",
          "iata_code": "LHR"
        },
        {
          "name": "Heathrow2",
          "city": "London2",
          "country": "United Kingdom2",
          "iata_code": "LHR2"
        }
      ]
    }


    1) удаляем все значения iata_code из первого файла и записываем в промежуточный файл 3.gron
    gron 1.json | grep -v "iata_code" > 3.gron

    2) во втором файле оставляем только значения iata_code и добавляем в промежуточный файл 3.gron
    gron 2.json | grep "iata_code" >> 3.gron

    3) преобразовываем промежуточный файл в json
    gron --ungron 3.gron > 3.json

    результат
    3.json
    {
      "airports": [
        {
          "city": "Лондон",
          "country": "Великобритания",
          "iata_code": "LHR",
          "name": "Хитроу"
        },
        {
          "city": "Лондон2",
          "country": "Великобритания2",
          "iata_code": "LHR2",
          "name": "Хитроу2"
        }
      ],
      "city": "Лондон",
      "json": 1
    }
    Ответ написан
    1 комментарий
  • Как правильно выбрать переменные из json в bash скрипте?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ cat example.json |jq -r '.server | .name,.public_net.ipv4.ip'
    my-server
    142.132.235.187


    если нужно сразу в переменные загнать то
    $ cat example.json| jq -r '.server | "name=\(.name)","ip=\(.public_net.ipv4.ip)"'
    name=my-server
    ip=142.132.235.187

    обернуть в eval и всё

    $ eval $(jq -r '.server | "name=\(.name)","ip=\(.public_net.ipv4.ip)"' example.json)
    
    $ echo $ip
    142.132.235.187
    Ответ написан
    Комментировать
  • Удалить из jq ключи содержащие часть слова?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ jq 'with_entries(select(.key|test("password")|not))' config.json
    {
      "description": "",
      "hostname": "ubuntu18",
      "ip": "",
      "username_1": "test",
      "username_1_owner": "dude1",
      "username_2": "test1",
      "username_2_owner": "dude2"
    }
    Ответ написан
    Комментировать
  • Как передать json файл с локальной сети на глобальную?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    собираешь LFS
    потом берёшь cron или лепишь systemd сервис+таймер для отправки по времени, и забиваешь команду:
    curl --data-binary @<file path> <URL>
    например:
    curl --data-binary '@ikillyou.json' 'https://pentagontours.osd.mil'

    и вуаля
    Ответ написан
    Комментировать
  • Как с помощью jq добавить значение из переменной, содержащей пробелы?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    json=$(jq --arg v "$bar" '.bar = $v' <<< $json)
    Ответ написан
    Комментировать
  • Как распарсить ответ JSON?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    всё довольно просто
    JJ="$(cat file.json)"
    words=($(echo "$JJ" | jq -r 'keys[]')) # blablaone blablatwo
    for i in ${words[*]}; do echo "$JJ" | jq -c --arg v $i '.[$v]'; done


    это на bash/jq хотя если судить по вашей истории вам нужно на C# ? но раз не уточнили то ловите и такой ответ
    Ответ написан
    Комментировать
  • Как из строк в столбик создать json строку?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    echo -e "test1@Yandex.Ru;Ваня\ntest2@Yandex.Ru;Ирина" | awk -F';' '{print "{\"confirmed\":true,\"email\":\""$1"\",\"first_name\":\""$2"\"},"}' | sed '$ s/.$//' | awk 'BEGIN{print "["} {print} END{print "]"}'

    ловите решение для баша
    хотя моя телепатия подсказывает что вам нужно php решение, если да, то вам срочно необходимо развивать искусство вставки меток для вопроса.
    Ответ написан
    Комментировать
  • Как отформатировать вывод JSON от GITHUB через bash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    varJson='[
    {
    "id": 1296269,
    "name": "Hello-World",
    "full_name": "octocat/Hello-World",
    "created_at": "2011-01-26T19:01:12Z",
    "updated_at": "2011-01-26T19:14:43Z"
    },
    {
    "id": 1296270,
    "name": "Hello-World2",
    "full_name": "octocat/Hello-World2",
    "created_at": "2011-01-26T19:01:12Z",
    "updated_at": "2011-01-26T19:14:43Z"
    }
    ]'


    echo "$varJson" | jq -r '.[] | "\(.name) \(.created_at)"'


    Hello-World 2011-01-26T19:01:12Z
    Hello-World2 2011-01-26T19:01:12Z
    Ответ написан
    1 комментарий
  • Как при помощи bash создать и трансформировать дерево директорий в .json?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ tree -J

    если надо с полными путями то:
    $ tree -f -J
    Ответ написан