2015-05-11 6 views
-3

Как преобразовать объект JSON в HTML? Я делаю запрос get, который возвращает объект JSON «_bodyText» в качестве ключа, а HTML - как строку в качестве значения. Когда я делаю JSON.parse (ответ) я получаю «Непризнанный маркер„<“„“Преобразование объекта JSON в HTML

Вот сам код:

var _handleResponse = function(response){ 
    console.log(response); 
} 

var rcscrapper = function() { 

fetch('https://community.recurse.com') 
.then(response => response.json()) 
.then(json => _handleResponse(json)) 
.catch(error => console.log('error: ' + error)) 
; 
} 


module.exports = rcscrapper; 

Мне нужно получить доступ к DIV в HTML, который имеет дочерние элементы Мне нужно получить доступ Что такое лучший способ сделать это

Вот JSON в соответствии с просьбой:.?

{"_bodyText":"<!DOCTYPE html>\n<html>\n<head>\n <title>Community</title>\n <link rel=\"stylesheet\" media=\"all\" href=\"/assets/application-b5c484ef7115cdd18ed06ce34dcc41a9.css\" data-turbolinks-track=\"true\" />\n <script src=\"/assets/application-ae06e8fa30cc49100443fa67eb2e5653.js\" data-turbolinks-track=\"true\"></script>\n <meta name=\"csrf-param\" content=\"authenticity_token\" />\n<meta name=\"csrf-token\" content=\"7Bb+U9qEhyFBQvHpLWQTV6u6nbTm7yRjZqoh/0zOfEsZ+VHEZ1CacmRp+QOxAuPxZdA3W341Nh/Nasl/SWfckw==\" />\n <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/assets/favicon-eea9bfa662ec6b82d29a214be25f4e0e.ico\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\">\n\n</head>\n<body>\n\n<div id=\"app\"></div>\n<script>\n community.core.init_app(document.getElementById(\"app\"), \"/assets/logo-small-8b4907edfec6650310c9459c8380c285.png\");\n</script>\n\n\n</body>\n</html>\n","type":"default","url":"","status":200,"headers":{"map":{"":[""]}}} 

Мне нужно получить доступ к «приложение» DIV, поскольку она содержит контент, что нужно.

Похоже, что json обрабатывается правильно - как я могу проанализировать HTML-код, содержащийся в нем?

+0

Мы не знаем? Можете ли вы показать нам JSON – Downgoat

+0

@ rahul2001: попробуйте JSON выполнить строчку, а затем отправить get и fetch ... покажите нам JSON, а затем мы увидим. –

+0

Вы JSON, анализирующий строку HTML, показываете больше своего кода –

ответ

0

Если, например, ваш JSON содержится в response объекте под data ключ, вы можете сделать что-то вроде этого:

var myObject = JSON.parse(response.data); 
document.write(myObject._bodyText); 
document.close(); 
+0

Не следует. У него нет «объекта, содержащего его JSON», у него есть строка, содержащая JSON, которую он не может ** разобрать **, чтобы получить объект, который вы показываете. После того, как вы разобрались, убеждены ли вы, что взломать всю HTML-страницу с помощью 'html' и' head' и все в 'body' текущего документа будет делать что-то полезное? –

+0

Я предполагаю, что у него есть какой-то объект 'response', содержащий строку. И поскольку это называется '_bodyText', я думаю, что можно с уверенностью предположить, что это либо какой-то текст, который он хочет вставить в документ, либо полный' '. В любом случае, этот сайт указывает на направление, а не на полное решение. Крики - никто не узнает ничего! –

0

fetch возвращает обещание для response объекта, на котором вам нужно вызовите метод json, который сам возвращает обещание.

fetch('community.recurse.com') . 
    then(response => response.json() . 
     then(function(json) { parse_html(json._bodyText); }) 
    ) . 
    catch(error => console.log('error: ' + error)) 
; 

После того, как вы получили JSON, вызвав response.json(), получить HTML-строку из _bodyText собственности, и вызвать parse_html на HTML строку, чтобы разобрать его в представление DOM, который вы можете получить доступ/запрос/манипулировать с помощью стандарты DOM API:

function parse_html(htmlString) { 
    var parser = new DOMParser(); 
    htmlDoc = parser.parseFromString(htmlString, "text/html"); 
    var document = htmlDoc.documentElement; 
    var myDiv = document.querySelector('div.app'); 
    // Do something with myDiv 
} 
+0

При выполнении этого вызова, я получаю следующий ответ: JSON Синтаксическая ошибка: Не удается разобрать JSON строку " RCTJSLog> "Ошибка: SyntaxError: JSON Ошибка синтаксического анализа: Непризнанный лексема '<'" RCTJSLog>" Ошибка: SyntaxError: Ошибка JSON Parse: невозможно разобрать строку JSON « – rahul2001

+0

« DOMParser »выдает ошибку – rahul2001

+0

Это работает для меня. Какая ошибка? В какой среде вы работаете? Как вы это называете? –

Смежные вопросы