Как выбрать конкретную строку json из URL-адреса для отображения в веб-просмотре?

Я получаю строковый параметр json из своих файлов javascript следующим образом:

http://local/action/?action=loadFile&params=%7B%22fileChart%22%3A%22url%22%2C%22item%22%3A%7B%22DocId%22%3A%2270078903%22%2C%22Headline%22%3A%22Alert%253A%2520AAPL%253A%2520QA%2520Test%22%2C%22PrimaryTickers%22%3A%22AAPL.O%22%2C%22ArrivalDate%22%3A%222015-04-29T08%3A04%3A40Z%22%2C%22fileType%22%3A%22url%22%2C%22secondaryFileType%22%3A%22pdf%22%2C%22secondaryFileExtension%22%3A%22pdf%22%2C%22curDate%22%3A1435589346483%2C%22Pages%22%3A8%2C%22url%22%3A%22https%253A%252F%252Fuat.citivelocity.com%252Frendition%252Feppublic%252FdocumentService%252FdXNlcl9pZD0mYWN0aW9uPXZpZXc%252FZmlsZV9uYW1lPVZTNkoucGRm%22%2C%22contributor%22%3A%22Citi%20-%20Linkback%20Test%22%7D%7D&requestType=GET&timestamp=1435589346484

Я хочу отображать только часть URL-адреса указанного выше URL-адреса, чтобы я мог декодировать https для данной ссылки и отображать только необходимую ссылку в loadurl веб-просмотра. В случае указанной выше ссылки это: https://uat.citvelocity.com ..etc, Текущая идея Я получил из поиска в Интернете примерно следующее:

webview.loadurl("javascript:(function() { "| "document.getElementByTagName('url')[0].style.display="+";"+"})()"); }
});

Но это работает не так, как ожидалось. Я что делаю неправильно? Любые идеи ?


person Community    schedule 29.06.2015    source источник


Ответы (1)


Поскольку ваша строка - это JSON, вероятно, неплохо просто проанализировать этот JSON на объект, чтобы вы могли просто использовать свойства объекта для получения того, что хотите.

var decoded = decodeURIComponent('http://local/action/?action=loadFile&params=%7B%22fileChart%22%3A%22url%22%2C%22item%22%3A%7B%22DocId%22%3A%2270078903%22%2C%22Headline%22%3A%22Alert%253A%2520AAPL%253A%2520QA%2520Test%22%2C%22PrimaryTickers%22%3A%22AAPL.O%22%2C%22ArrivalDate%22%3A%222015-04-29T08%3A04%3A40Z%22%2C%22fileType%22%3A%22url%22%2C%22secondaryFileType%22%3A%22pdf%22%2C%22secondaryFileExtension%22%3A%22pdf%22%2C%22curDate%22%3A1435589346483%2C%22Pages%22%3A8%2C%22url%22%3A%22https%253A%252F%252Fuat.citivelocity.com%252Frendition%252Feppublic%252FdocumentService%252FdXNlcl9pZD0mYWN0aW9uPXZpZXc%252FZmlsZV9uYW1lPVZTNkoucGRm%22%2C%22contributor%22%3A%22Citi%20-%20Linkback%20Test%22%7D%7D&requestType=GET&timestamp=1435589346484'),
    json = JSON.parse(decoded.slice(decoded.indexOf('&params=') + 8, decoded.indexOf('&requestType'))),
    url = decodeURIComponent(json.item.url);
person Shilly    schedule 29.06.2015
comment
Дело в том, что данный URL-адрес json local / action / .. etc является динамическим, поэтому он постоянно меняется, но строковый URL-адрес внутри него, содержащий https, остается прежним, с различными URL-адресами https, можно ли распознать, содержат ли параметры https, а затем получить строку, начинающуюся с https, декодировать ее и отобразить в loadurl веб-просмотра? - person ; 29.06.2015
comment
локальный / action может меняться сколько угодно. Мы проверяем только индекс params = и responseType =, который, как я подозреваю, останется неизменным, если все динамические URL-адреса поступают из одного и того же источника, поэтому ничего не меняется. Конечно, вы можете просто разрезать строку на части, но поскольку данные - это json, имеет смысл использовать json imho. - person Shilly; 30.06.2015