Анализ JSON возвращает неопределенный - PullRequest
0 голосов
/ 21 октября 2018

Я получаю сообщение STOMP с некоторыми данными JSON, проблема в том, что я один раз использую код, который я использую, работает

function connect() {
    var socket = new SockJS('/gs-guide-websocket');
    stompClient = Stomp.over(socket);
    stompClient.connect({}, function (frame) {
        setConnected(true);
        console.log('Connected: ' + frame);
        stompClient.subscribe('/topic/greetings', function (greeting) {
            console.log("data -->" +greeting + " <-- data");
            console.log(JSON.parse(greeting.body) + " <-- JSON object");
            console.log(JSON.parse(greeting.body).content + " <-- parsed data");
            showGreeting(JSON.parse(greeting.body).content);
        });
    });
}

результат

data -->MESSAGE
content-length:34
message-id:4wb1eunw-1
subscription:sub-0
content-type:application/json;charset=UTF-8
destination:/topic/greetings
content-length:34

{"content":"user has subscribed!"} <-- data
[object Object] <-- JSON object
user has subscribed! <-- parsed data

И я использую почти такой же код в другом проекте

function connect() {
    var socket = new SockJS('/gs-guide-websocket');
    stompClient = Stomp.over(socket);
    stompClient.connect({}, function (frame) {
        setConnected(true);
        console.log('Connected: ' + frame);
        stompClient.subscribe('/golden/notification', function (notification) {
            console.log("data -->" +notification + " <-- data");
            console.log(JSON.parse(notification.body) + " <-- JSON object");
            console.log(JSON.parse(notification.body).content + " <-- parsed data");
            showNotification(JSON.parse(notification.body).content);
        });
    });
}

Но результат несколько иной

data -->MESSAGE
content-length:39
message-id:wh4z1ahx-0
subscription:sub-0
content-type:application/json;charset=UTF-8
destination:/golden/notification
content-length:39

{"notification": "user has subscribed!"} <-- data
[object Object] <-- JSON object
undefined <-- parsed data

Я немного новичок в Js, поэтому ответ может быть действительнопросто, но я не могу найти какие-либо решения для решения этой проблемы.

PS этот скрипт является частью приложения Sring Boot, и библиотеки одинаковы.

1 Ответ

0 голосов
/ 21 октября 2018

Так что благодаря @CertainPerformance.Как вы видите в первом примере, мой JSON-объект имел элемент "content"

{"content":"user has subscribed!"}

И он получил свое значение, используя JSON.parse(notification.body).content

Но во втором примере не былоэлемент "content" only "Уведомление"

{"notification": "user has subscribed!"}

Поэтому, чтобы получить значение "уведомления", вам нужно использовать JSON.parse(notification.body).notification

Я надеюсь, что этот пост будет кому-то полезен.

...