json .encode to json .parse 1 переменная потеряна? - PullRequest
0 голосов
/ 03 мая 2020

Я использую JSON: закодировать, чтобы подготовить таблицу lua для передачи udp. На другом конце я использую JSON .parse для декодирования, а затем определяю 3 переменные. На стороне передачи я проверяю, что таблица создана и имеет все три переменные, печатая botMsg [0], botMsg [1] и botMsg [3] в журналы перед запуском JSON: encode (botMsg). На принимающей стороне я запускаю obj = JSON .parse (msg) и затем определяю 3 переменные для использования в коде. В итоге я получаю первую переменную obj [0] - botMsg [1], obj [1] - botMsg [2], а obj [2] - не определена.

Ищете идеи, почему это происходит?

Сторона передачи LUA код:

PandaBoss.sendBossMessage = function(msg)


    botMsg = {}
    botMsg[1] = msg
    botMsg[2] = guild_ID
    botMsg[3] = channel_ID

    env.info(botMsg[1]) --prints msg to data log
    env.info(botMsg[2]) --prints guild_id to data log
    env.info(botMsg[3]) --prints channel_id to data log

    json_string = JSON:encode(botMsg)

    socket.try(PandaBoss.UDPSendSocket:sendto(json_string, ip, 31090))

end

Получение node.js код:

server.on('message', function(msg) {
obj = JSON.parse(msg)
bossMsg = obj[0]
guild_ID = obj[1]
channel_ID = obj[2]
console.log(bossMsg); //prints guild_id
console.log(guild_ID); //prints channel_id
console.log(channel_ID); //prints undefined

});

Новое изменение для получателя

server.on('message', function(msg) {

console.log(msg.toString());
obj = JSON.parse(msg)
bossMsg = obj[0]
guild_ID = obj[1]
channel_ID = obj[2]
console.log(bossMsg);
console.log(guild_ID);
console.log(channel_ID);

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...