Как я могу преобразовать весь сайт в строку, которую я могу проанализировать с помощью JavaScript? - PullRequest
0 голосов
/ 11 марта 2019

Итак, я создаю веб-сайт для своих серверов видеоигр, и наш инструмент администратора выводит текущий статус сервера в виде .json в виде гигантской строки текста на этот URL:

http://server.bandwidthbandits.org/api/status

Я хочу взять всю строку из URL и присвоить ее переменной, чтобы я мог использовать JSON.parse () со строкой, полученной по ссылке. Другими словами, как мне преобразовать всю вышеупомянутую веб-страницу в длинную строку, которую я могу проанализировать с помощью javascript?

Я понятия не имею, как это сделать, но я почти уверен, что смогу разобрать JSON, как только он окажется в строке.

Я думал, что это может сработать, но это не так:

p id="SERVERS">HELLO</p>

<script type="text/javascript"> 
    var txt = document.getElementsByTagName('http://server.bandwidthbandits.org/api/status')[0].innerHTML;
    var obj = JSON.parse(txt);
    document.getElementById("SERVERS").innerHTML = obj.name + ", " + obj.map + ", " + obj.gamemode + ", " + obj.players; 
    //more parsing necessary, but to tired to write full statement right now
</script>

ОБНОВЛЕННЫЙ КОД:

<p id="name">HELLO</p>
<p id="maxp">HELLO</p>
<p id="curp">HELLO</p>

<script type="text/javascript">

    function FetchAPI(url) {
        fetch(url).then(function (data) {
            return data.json();
        }).then(function (obj1) {
            console.log(obj1);
        });
    }

    var nukestats = FetchAPI("http://server.bandwidthbandits.org/api/status/340417768");
    obj = JSON.parse(nukestats);

    document.getElementById("name").innerHTML = 'Server name: ' + (obj[0].name);
    document.getElementById("maxp").innerHTML = 'Max Players: ' + (obj[0].maxPlayers);
    document.getElementById("curp").innerHTML = 'Current Players: ' + (obj[0].currentPlayers);
</script>

Обновленный код показывает, что я пытался сделать. Поскольку мне нужно будет запросить несколько серверов, я попытался сделать выборку API в функцию. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как импортировать API из Интернета в то, что я умею анализировать. Если я копирую и вставляю выходные данные API в свой код как переменную, это работает, но это не работает, когда я пытаюсь импортировать API, используя java-скрипт.

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Вы должны получить ответ с помощью ajax-вызова с типом данных application / Json

Или используйте метод jquery ниже:

 $.getJSON(url,function(data){
//Here you get json on data variable
});

Но убедитесь, что ваш URL вернет строку json.

0 голосов
/ 11 марта 2019

Вам нужно получить данные с сайта и, используя обещания, разобрать их:

fetch("http://yourapi.com").then(function (data) {
    return data.json();
}).then(function (obj) {
    console.log(obj);
});

Кстати, то, что вы смотрите, не является действительным сайтом.API возвращает строку json, и поскольку браузер больше ничего не может с ней сделать, он просто отобразит ее в виде текста.

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