Json целиком с добавлением значения

Поддержка
  • Вроде уже получше )) Осталось лишнее рубануть, донейтик сейчас подкину.

    Так как мне нужна только часть с конкретной песней, начиная с {"id": и заканчивая :1}

  • @lcatlas said in Json целиком с добавлением значения:

    Он мне требуется для возврата post-ом после изменения обратно на сервер.

    В таком случае я бы сделал проще:

    [[JSON]] = '{"list":[{"id":444,"requests":[{"name":"222","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1,"createdAt":"2020-02-02T18:27:28.762Z","prevId":null,"song":{"title":"555","artist":"","createdAt":"2019-02-05T23:05:23.000Z","attributeIds":[]},"songId":222,"streamerId":999,"position":1}]}'
    var title = "555"
    var obj = JSON.parse([[JSON]])["list"].filter(function(c){return c.song.title == title})[0]
    obj.requests.push({"name":"Alex","amount":1})
    [[RESULT]] = JSON.stringify(obj)
    
    log([[JSON]])
    log([[RESULT]])
    

    тестовый скрипт

  • Эх, все таки лист в начале нужен ))
    {"list": [ и закрывающая }

  • @lcatlas said in Json целиком с добавлением значения:

    Эх, все таки лист в начале нужен ))
    {"list": [ и закрывающая }

    Дак добавьте, 5 символов кода всего:

    [[JSON]] = '{"list":[{"id":444,"requests":[{"name":"222","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1,"createdAt":"2020-02-02T18:27:28.762Z","prevId":null,"song":{"title":"555","artist":"","createdAt":"2019-02-05T23:05:23.000Z","attributeIds":[]},"songId":222,"streamerId":999,"position":1}]}'
    var title = "555"
    var obj = JSON.parse([[JSON]])["list"].filter(function(c){return c.song.title == title})[0]
    obj.requests.push({"name":"Alex","amount":1})
    [[RESULT]] = JSON.stringify({"list":[obj]})
    
    log([[JSON]])
    log([[RESULT]])
    
  • @Fox said in Json целиком с добавлением значения:

    JSON.stringify({"list":[obj]})

    Прошу прощения, голова уже не варит совсем. На выходе у меня получается }]}

    Надо }}, с этим и получилась заминка, к сожалению.

    А квадратные скобки после [{"name":"222","amount":1}]

  • @lcatlas said in Json целиком с добавлением значения:

    @Fox said in Json целиком с добавлением значения:

    JSON.stringify({"list":[obj]})

    Прошу прощения, голова уже не варит совсем. На выходе у меня получается }]}

    Надо }}, с этим и получилась заминка, к сожалению.

    Я вас не понимаю. Json строку я указал валидную, объект с свойством list и значением - массивом объектов. О каких фигурных скобках вы говорите?

  • {"list":[{"id":444,"requests":[{"name":"222","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1,"createdAt":"2020-02-02T18:27:28.762Z","prevId":null,"song":{"title":"555","artist":"","createdAt":"2019-02-05T23:05:23.000Z","attributeIds":[]},"songId":222,"streamerId":999,"position":1}}
    

    Это мой косяк. Вот оригинал строки.

    На выходе у меня получается по коду }]} в конце и теряются [{"name":"222","amount":1} - здесь.
    Оригинал [{"name":"222","amount":1}]

    И в конце }}

  • @lcatlas said in Json целиком с добавлением значения:

    {"list":[{"id":444,"requests":[{"name":"222","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1,"createdAt":"2020-02-02T18:27:28.762Z","prevId":null,"song":{"title":"555","artist":"","createdAt":"2019-02-05T23:05:23.000Z","attributeIds":[]},"songId":222,"streamerId":999,"position":1}}
    

    Это мой косяк. Вот оригинал строки.

    На выходе у меня получается по коду }]} в конце и теряются [{"name":"222","amount":1} - здесь.

    Оригинал строки является невалидной json строкой, проверьте на https://jsoneditoronline.org/

  • Так указано в документации, в том числе и так приходит Json запрос.

    eca95c5a-f90f-4de7-b29e-d18fe2b07cbf-image.png

    Сайт вообще кривой как не знаю что, я 4 часа пытал разраба, чтобы аунтификацию получить.

    Начало приходящего Json - {"list":[{"
    Конец - :0}}

  • {
      "list": [
        {
          "id": 0,
          "requests": [
            {
              "amount": 5,
              "name": "some-user"
            }
          ],
          "note": "string",
          "botRequestBy": "string",
          "nonlistSong": "string",
          "donationAmount": 0,
          "createdAt": "string",
          "song": {
            "title": "string",
            "artist": "string"
          },
          "songId": 0,
          "streamerId": 0,
          "position": 0
        }
      ],
      "status": {
        "songsPlayedToday": 0
      },
      "previousPosition": 0,
      "queue": {
        "id": 0,
        "requests": [
          {
            "amount": 5,
            "name": "some-user"
          }
        ],
        "note": "string",
        "botRequestBy": "string",
        "nonlistSong": "string",
        "donationAmount": 0,
        "createdAt": "string",
        "song": {
          "title": "string",
          "artist": "string"
        },
        "songId": 0,
        "streamerId": 0,
        "position": 0
      }
    }
    

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

    В общем спасибо большое, не разберешься так.

  • @lcatlas said in Json целиком с добавлением значения:

    Вот так оно у него приходит.

    Вот это валидный json
    https://jsoneditoronline.org/?id=f077b358dde64dd18d3a765b45353790

  • А где я облажался при сборке? ) Но в целом, оно мне приходит в таком виде по get. Вопрос только как в конце должно быть наверно.

    Да беда еще и в том, что урл куда я отдавать должен - 404.

  • @lcatlas said in Json целиком с добавлением значения:

    А где я облажался при сборке? ) Но в целом, оно мне приходит в таком виде по get. Вопрос только как в конце должно быть наверно.

    Да беда еще и в том, что урл куда я отдавать должен - 404.

    я изначально сделал пример, где беру исходную строку, добавляю параметры и возвращаю всю строку, изменённую. Вы же брали только кусок, скорее всего косяк в этом. А вообще, надо читать мануал по api

  • https://api.streamersonglist.com/docs/#/ - это весь мануал ))))

    Я беру исходную строку целиком, не кусок. То есть очень длинный код JSON.

  • @lcatlas said in Json целиком с добавлением значения:

    https://api.streamersonglist.com/docs/#/ - это весь мануал ))))

    Я беру исходную строку целиком, не кусок. То есть очень длинный код JSON.

    Изучать апи сервиса мне некогда. В указанной ранее вами функции вы возвращали именно один объект из массива.

  • {"list":[{"id":739272,"requests":[{"name":"Vitaly","amount":2.38}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":2.38,"createdAt":"2020-02-02T18:27:28.762Z","prevId":null,"song":{"title":"Kephallonia Island - Assassin's Creed Odyssey","artist":"","createdAt":"2019-02-05T23:05:23.000Z","attributeIds":[]},"songId":114436,"streamerId":1856,"position":1},{"id":739562,"requests":[{"name":"NIGHTMARE","amount":5.84},{"name":"1","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":6.84,"createdAt":"2020-02-02T21:53:22.567Z","prevId":739272,"song":{"title":"Wind in the Dunes - Metro Exodus","artist":"","createdAt":"2019-11-21T18:40:34.979Z","attributeIds":[]},"songId":226298,"streamerId":1856,"position":2},{"id":739566,"requests":[{"name":"SmashDtrash","amount":4.76}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":4.76,"createdAt":"2020-02-02T21:57:10.504Z","prevId":739562,"song":{"title":"Overture - Metro Exodus","artist":"","createdAt":"2019-11-21T18:32:22.138Z","attributeIds":[]},"songId":226290,"streamerId":1856,"position":3},{"id":739571,"requests":[{"name":"Guslik","amount":3.17}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":3.17,"createdAt":"2020-02-02T22:01:12.589Z","prevId":739566,"song":{"title":"Storm Summer - Vivaldi","artist":"","createdAt":"2020-01-14T14:54:34.318Z","attributeIds":[]},"songId":254626,"streamerId":1856,"position":4},{"id":739465,"requests":[{"name":"Joker’s Grin","amount":2.38}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":2.38,"createdAt":"2020-02-02T20:50:45.770Z","prevId":739571,"song":{"title":"Once, There Was an Explosion - Death Stranding","artist":"","createdAt":"2019-11-21T19:17:22.862Z","attributeIds":[]},"songId":226357,"streamerId":1856,"position":5},{"id":739483,"requests":[{"name":"Антонио","amount":1.92}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1.92,"createdAt":"2020-02-02T21:03:29.395Z","prevId":739465,"song":{"title":"Main Theme - Terminator 2","artist":"","createdAt":"2020-01-30T14:50:17.878Z","attributeIds":[]},"songId":260495,"streamerId":1856,"position":6},{"id":738320,"requests":[{"name":"Fennel Dove","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1,"createdAt":"2020-02-01T20:28:44.165Z","prevId":739483,"song":{"title":"Installation - Halo Combat Evolved","artist":"","createdAt":"2020-01-30T14:28:25.426Z","attributeIds":[]},"songId":260482,"streamerId":1856,"position":7},{"id":739518,"requests":[{"name":"redfantomas","amount":1}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":1,"createdAt":"2020-02-02T21:32:15.705Z","prevId":738320,"song":{"title":"Gladiator - Hans Zimmer - Gladiator","artist":"","createdAt":"2020-01-16T16:49:29.353Z","attributeIds":[]},"songId":254949,"streamerId":1856,"position":8},{"id":735113,"requests":[{"name":"злодейка","amount":0.88}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.88,"createdAt":"2020-01-30T18:53:11.566Z","prevId":739518,"song":{"title":"Phoibe the Orphan - Assassin's Creed Odyssey","artist":"","createdAt":"2019-11-21T18:06:39.751Z","attributeIds":[]},"songId":226280,"streamerId":1856,"position":9},{"id":731963,"requests":[{"name":"Snake Eyes","amount":0.8}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.8,"createdAt":"2020-01-28T18:29:34.660Z","prevId":735113,"song":{"title":"Ashina Clan - Sekiro: Shadows Die Twice","artist":"","createdAt":"2019-11-21T18:46:47.414Z","attributeIds":[]},"songId":226304,"streamerId":1856,"position":10},{"id":732216,"requests":[{"name":"zelya","amount":0.8}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.8,"createdAt":"2020-01-28T20:30:46.153Z","prevId":731963,"song":{"title":"River Flows In You - Yiruma","artist":"","createdAt":"2019-12-07T17:04:17.350Z","attributeIds":[]},"songId":232511,"streamerId":1856,"position":11},{"id":734998,"requests":[{"name":"IceQueen","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-01-30T17:31:10.722Z","prevId":732216,"song":{"title":"Teardrops Pt. 2 - Metro Exodus","artist":"","createdAt":"2019-11-21T18:41:23.107Z","attributeIds":[]},"songId":226299,"streamerId":1856,"position":12},{"id":735100,"requests":[{"name":"LexusGTXXX","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-01-30T18:45:11.064Z","prevId":734998,"song":{"title":"Кукла Колдуна - КиШ","artist":"","createdAt":"2019-12-07T14:22:59.437Z","attributeIds":[]},"songId":232456,"streamerId":1856,"position":13},{"id":738111,"requests":[{"name":"NineTees","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-02-01T18:36:57.103Z","prevId":735100,"song":{"title":"Hunt or Be Hunted - The Witcher 3","artist":"","createdAt":"2019-02-04T16:56:27.000Z","attributeIds":[]},"songId":113958,"streamerId":1856,"position":14},{"id":738326,"requests":[{"name":"Night Train","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-02-01T20:32:29.939Z","prevId":738111,"song":{"title":"Cold Welcome - Metro Exodus","artist":"","createdAt":"2019-11-21T18:37:21.107Z","attributeIds":[]},"songId":226295,"streamerId":1856,"position":15},{"id":739396,"requests":[{"name":"LittleTickle","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-02-02T19:51:31.485Z","prevId":738326,"song":{"title":"The Trail - The Witcher 3","artist":"","createdAt":"2019-02-04T16:45:02.000Z","attributeIds":[]},"songId":113943,"streamerId":1856,"position":16},{"id":739406,"requests":[{"name":"Red Rhino","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-02-02T19:55:33.753Z","prevId":739396,"song":{"title":"Markos - Assassin's Creed Odyssey","artist":"","createdAt":"2019-02-05T23:06:45.000Z","attributeIds":[]},"songId":114439,"streamerId":1856,"position":17},{"id":739459,"requests":[{"name":"воин","amount":0.79}],"note":null,"botRequestBy":null,"nonlistSong":null,"donationAmount":0.79,"createdAt":"2020-02-02T20:46:49.556Z","prevId":739406,"song":{"title":"Exodus Blues - Metro Exodus","artist":"","createdAt":"2019-11-21T18:38:19.609Z","attributeIds":[]},"songId":226297,"streamerId":1856,"position":18}],"status":{"songsPlayedToday":0}}
    

    Вот так выглядит весь объект из массива, с которым я работаю.