Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 6

В JSON строке содержится HTML, необходимо получить HTML разметку в приложении

17.12.2018, 18:00. Показов 2465. Ответов 11

Студворк — интернет-сервис помощи студентам
В JSON строке содержится HTML, необходимо получить HTML разметку в андройд приложении.
Получаю из API json строку, содержащую html разметку, пытаюсь запарсить её в java, но не выводится ровным счётом ничего.

Сам код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class ApiConnectTask1 extends AsyncTask<URL,Void,String> {
            @Override
            protected String doInBackground(URL... urls){
                String response2=null;
                try{
                    response2=getResponseFromURL(urls[0]);
                }catch (IOException e){
                    e.printStackTrace();
                }
                return response2;
            }
 
            @Override
            protected void onPostExecute(String response2){
                String sbaId=null;
                String sbaTitle=null;
                String sbaDate=null;
                String sbaShortDescription=null;
                String sbaFullDescription=null;
                try {
                    JSONObject jsonNews = new JSONObject(response2);
                    JSONArray jsonArray2 = jsonNews.getJSONArray("news");
                    String resultString2="";
                    for (int i=0;i<jsonArray2.length();i++){
                        JSONObject detailsInfo = jsonArray2.getJSONObject(i);
                        sbaId=detailsInfo.getString("id");
                        sbaTitle=detailsInfo.getString("title");
                        sbaDate=detailsInfo.getString("date");
                        sbaShortDescription=detailsInfo.getString("shortDescription");
                        sbaFullDescription=detailsInfo.getString("fullDescription");
                        resultString2+= sbaId+"\n"+sbaTitle+"\n"+sbaDate+"\n"+sbaShortDescription+"\n"+sbaFullDescription+"\n\n";
                    }
                    searchTextView1.setText(resultString2);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
    }
Логи:

12-17 17:57:14.388 21246-21246/com.pactuwka.myapplication W/System.err: org.json.JSONException: Value {"id":19,"title":"Единственная новость","date":"2016-08-03T11:15:21.104Z","shortDescription":"В этой категории только 1 новость, и это нормально","fullDescription":"<p>Полный текст новости <b>с жирным текстом<\/b>, <i>курсивом<\/i> и <a href="http:\/\/testtask.sebbia.com\/swagger-ui.html">одной ссылкой<\/a><\/p><p>Кроме того, в тексте два параграфа<\/p>"} at news of type org.json.JSONObject cannot be converted to JSONArray
12-17 17:57:14.389 21246-21246/com.pactuwka.myapplication W/System.err: at org.json.JSON.typeMismatch(JSON.java:100 )

Java
1
resultString2+= sbaId+"\n"+sbaTitle+"\n"+sbaDate+"\n"+sbaShortDescription+"\n"+sbaFullDescription+"\n\n";
В этой строке я пытаюсь просто вывести стринговскую строку, дабы убедиться в том, что всё работает.
Однако ничего не работает, хотя точно таким же способом получается парсить json без html.
Можете подсказать, что я делаю не так? Или подскажите ресурс где можно почитать о том как парсить html в джавку
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2018, 18:00
Ответы с готовыми решениями:

Можно ли получить html разметку?
Здравствуйте! Имеется страничка с таблицей &lt;table id=&quot;data&quot;&gt; Есть ли возможность, чтобы при нажатии на кнопку, html разметка этой таблицы...

Как через Html.ActionLink передать значение в другом Html-элементе в MVC-приложении?
как через Html.ActionLink передать значение в другом Html-элементе в MVC-приложении? Есть форма: &lt;input id=&quot;FileUpload&quot;...

Как получить в приложении данные из html формы?
Доброго времени суток. Интересует следующий вопрос: Есть приложение на pyqt, в котором присутствуют множественные поля для ввода данных....

11
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
17.12.2018, 18:05
jsonNews.getJSONArray("news"
где ты в этом json-е видишь массив news?
1
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 6
17.12.2018, 18:09  [ТС]
Вот отсюда.
JSON
1
{"code":0,"news":{"id":19,"title":"Единственная новость","date":"2016-08-03T11:15:21.104Z","shortDescription":"В этой категории только 1 новость, и это нормально","fullDescription":"<p>Полный текст новости <b>с жирным текстом</b>, <i>курсивом</i> и <a href=\"http://Ссылка\">одной ссылкой</a></p><p>Кроме того, в тексте два параграфа</p>"}}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
17.12.2018, 18:33
очевидно news - не array
1
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 6
17.12.2018, 18:46  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
       class ApiConnectTask1 extends AsyncTask<URL,Void,String> {
            @Override
            protected String doInBackground(URL... urls){
                String response=null;
                try{
                    response=getResponseFromURL(urls[0]);
                }catch (IOException e){
                    e.printStackTrace();
                }
                return response;
            }
 
            @Override
            protected void onPostExecute(String response){
                String sbaId=null;
                String sbaTitle=null;
                String sbaDate=null;
                String sbaShortDescription=null;
                String sbaFullDescription=null;
                try {
                    JSONObject jsonObject = new JSONObject(response);
                    JSONArray jsonArray = jsonObject.getJSONArray("news");
                    String resultString="";
                    for (int i=0;i<jsonArray.length();i++){
                        JSONObject detailsInfo = jsonArray.getJSONObject(i);
                        sbaId=detailsInfo.getString("id");
                        sbaTitle=detailsInfo.getString("title");
                        sbaDate=detailsInfo.getString("date");
                        sbaShortDescription=detailsInfo.getString("shortDescription");
                        sbaFullDescription=detailsInfo.getString("fullDescription");
                        resultString+= sbaId+"\n"+sbaTitle+"\n"+sbaDate+"\n"+sbaShortDescription+"\n"+sbaFullDescription+"\n\n";
                    }
                    searchTextView1.setText(resultString);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
    }
Если вы об этом, то и в таком виде ничего не отображается и вылетает с теми же логами

Добавлено через 5 минут
К слову, вот код работающего метода как надо.
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    class ApiConnectTask0 extends AsyncTask<URL,Void,String> {
        @Override
        protected String doInBackground(URL... urls) {
            String response = null;
            try {
                response = getResponseFromURL(urls[0]);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return response;
        }
        @Override
        protected void onPostExecute(String response) {
            String sbaId = null;
            String sbaName = null;
            try {
                JSONObject jsonList = new JSONObject(response);
                JSONArray jsonArray = jsonList.getJSONArray("list");
                String resultString = "";
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject categoryInfo = jsonArray.getJSONObject(i);
                    sbaId = categoryInfo.getString("id");
                    sbaName = categoryInfo.getString("name");
                    resultString += sbaId + "\n" + sbaName + "\n\n";
                }
                searchTextView0.setText(resultString);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
JSON
1
{"code":0,"list":[{"id":0,"name":"Много новостей"},{"id":1,"name":"Немного новостей"},{"id":2,"name":"Нет новостей"}]}
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
17.12.2018, 18:48
ты реально не видишь разницы в структуре этих json-ов?
скобки там квадратные и все такое
0
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 6
17.12.2018, 19:50  [ТС]
Кажется понял.
Из полученной строки
Java
1
 JSONObject jsonObject = new JSONObject(response);
нужно получить массив и из него получить ещё один массив, так ведь?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
17.12.2018, 19:55
pa4c, наркоман? где ты видишь массив?
1
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 6
17.12.2018, 20:39  [ТС]
Если бы понимал что и как, я бы не спрашивал у вас. Я лишь прошу ткнуть мне пальцем куда писать и объяснить, ибо не понимаю

Добавлено через 28 минут
Это было.. глупо.
Java
1
2
JSONObject jsonObject = new JSONObject(response);
JSONObject detailsInfo = jsonObject.getJSONObject("news");
Спасибо, что тыкнули (хоть я и долго понимал это).
Теперь главный вопрос. Как переписать этот метод, чтобы получить из этого HTML в приложении на android?

Добавлено через 5 минут
Что-то типо:
Берём <p>ПримерТекста</p> делаем то-то и получаем этот же ПримерТекста в виде html, а не тега и текста
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
17.12.2018, 21:25
Цитата Сообщение от pa4c Посмотреть сообщение
Берём <p>ПримерТекста</p> делаем то-то и получаем этот же ПримерТекста в виде html, а не тега и текста
HTML — это тэги и текст.
0
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 6
17.12.2018, 21:34  [ТС]
Имеется вот такой текст.
Кликните здесь для просмотра всего текста

И мне необходимо из него получить работающий html внутри приложения (объяснил как мог)
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
18.12.2018, 12:40
https://developer.android.com/... ing,%20int)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2018, 12:40
Помогаю со студенческими работами здесь

Пытаюсь получить html страницы через ajax, приходит json
Сам ajax: $.ajax({ type: &quot;GET&quot;, url: &quot;filter.html&quot;, dataType: 'html', ...

Подредактировать разметку HTML
Дратути. Экспортировал таблицу из Excel в HTML. Нужно подправить отображение полей, поле ввода и поле результата, чтоб было как в...

В div игнорировать html разметку
как сделать что бы в диве не воспринимался текст как html разметка?

Менять html разметку в зависимости от параметра
нужно изменить мета-теги (og:image, og:title, og:description), если на сайт пришли по ссылке с параметром, если нет - оставить дефолтные. ...

Как в JS вставить разметку HTML с содержимым PHP
$('.msg_content').append('&lt;div class=&quot;card to_card col-md-3 col-sm-3 col-lg-3&quot; style=&quot;float: left; margin-right: 7px; position: absolute;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru