Как передать строку json в качестве параметра в javascript? - PullRequest
0 голосов
/ 14 июля 2020

Я получил строку json вроде этой:

Ответ Api в виде следующего списка:

[
    {
        "id": "1018491557",
        "results": "{\"combo\":\"3,4,13,14\"}",
        "time": "2020-07-13T16:11:03.082Z",
        "modifiedTime": "0001-01-01T00:00:00",
        "status": "SUCCESS"
    },...
]

Затем я создаю макет html, как это, и мне нужно открыть модальный, чтобы показать отдельные детали:

var res = 
'<a href="#" onclick="openDetails(\''+value.id+'\', \''+value.results+'\', \''+value.time+'\', \''+value.modifiedTime+'\')">';
$(".list").append(res);

Но я просто не могу получить правильный формат РЕЗУЛЬТАТЫ для отображения.

function openDetails($id, $res, $time, $modTime){
    $("#DetailsModal").remove();
    var modal =
        '<div id="DetailsModal" class="modal fade" tabindex="-1" role="dialog">'+
            '<div class="modal-dialog" role="document">'+
                '<div class="modal-content">'+
                    '<div class="modal-header">'+
                        '<h5 class="modal-title">Details</h5>'+
                    '<button type="button" class="close" data-dismiss="modal" aria-label="Close">'+
                        '<span aria-hidden="true">&times;</span>'+
                    '</button>'+
                    '</div>'+
                    '<div class="modal-body">'+
                        '<p>ID: '+$id+'</p>'+
                        '<p>Sesults: '+$res+'</p>'+
                        '<p>Time: '+$time+'</p>'+
                    '</div>'+
                    '<div class="modal-footer">'+
                        '<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>'+
                    '</div>'+
                '</div>'+
            '</div>'+
        '</div>';
    $("body").append(modal);
    $("#DetailsModal").modal({
        backdrop:"static",
        keyboard:false,
        show:true
    });
}

Кто-нибудь может указать на меня здесь? Спасибо

решено! Хорошо ~ оказывается, нет необходимости снова заключать строку в кавычки. проблема решена заменой двойных кавычек на одинарные.

<a href="#" onclick="openDetails(\''+value.id+'\', '+value.results.replace(/"/g, "'")+', \''+value.time+'\', \''+value.modifiedTime+'\')">

1 Ответ

0 голосов
/ 14 июля 2020

Я точно не знаю, что это за код, но если вы получите строку json, вы должны использовать JSON.parse(), чтобы преобразовать ее в объект JavaScript.

var result = JSON.parse('{"combo":"3,4,13,14"}');
...
<a href="#" onclick="openDetails(result)">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...