Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
#1

Ошибка Value null at rows of type org.json.JSONObject$1 cannot be converted to JSONArray - Программирование Android

04.08.2016, 15:19. Просмотров 720. Ответов 6

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public class MainActivity extends Activity {
  JSONObject jsonobject;
    JSONArray jsonarray;
    ListView listview;
    ListViewAdapter adapter;
    ProgressDialog mProgressDialog;
    ArrayList<HashMap<String, String>> arraylist;
    static String IMAGE = "media";
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get the view from listview_main.xml
        setContentView(R.layout.listview_main);
        // Execute DownloadJSON AsyncTask
        new DownloadJSON().execute();
    }
 
  
    private class DownloadJSON extends AsyncTask<Void, Void, Void> {
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
           
            mProgressDialog = new ProgressDialog(MainActivity.this);
           
            mProgressDialog.setTitle("test");
     
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
       
            mProgressDialog.show();
        }
 
        @Override
        protected Void doInBackground(Void... params) {
            
          
            arraylist = new ArrayList<HashMap<String, String>>();
            
            jsonobject = JSONfunctions
                    .getJSONfromURL("http://****");
 
 
            try {
                
                jsonarray = jsonobject.getJSONArray("rows");
 
 
                for (int i = 0; i < jsonarray.length(); i++) {
                    HashMap<String, String> map = new HashMap<String, String>();
                    jsonobject = jsonarray.getJSONObject(i);
                    map.put("media", jsonobject.getString("media"));
                    arraylist.add(map);
                }
            } catch (JSONException e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }
 
        @Override
        protected void onPostExecute(Void args) {
          
            listview = (ListView) findViewById(R.id.listview);
      
            adapter = new ListViewAdapter(MainActivity.this, arraylist);
 
            listview.setAdapter(adapter);
 
            mProgressDialog.dismiss();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2016, 15:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка Value null at rows of type org.json.JSONObject$1 cannot be converted to JSONArray (Программирование Android):

Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject
Здравствуйте! Есть база данных bd.json, которая находится в проекте в папке...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Дополнительные сведения: Cannot deserialize the current JSON object (e.g....

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Всем привет! Помогите, плиз, разобраться с ошибкой: An unhandled exception...

Ошибка в коде could not convert variant of type null into type integer
var i,j:byte; n:string; begin form7.ComboBox1.Enabled:=false; with...

Ошибка: Could not convert variant of type (Null) into type (String) - Фильтрация
В polycom200U1GTADOQuery1 свойстве Events - OnFilterRecord пишу procedure...

Ошибка Unable to load project. Could not convert variant of type (Null) into type (OleStr)
вдруг не с того не с чего при запуске проекта вылетает ошибка Unable to load...

6
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,887
04.08.2016, 19:38 #2
quadenes, и что тут не ясно? Вам приходит null а вы хотите получить массив - вот оно и брыкается - проверьте приходят ли данные, какого они типа и как они называются
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
05.08.2016, 09:43  [ТС] #3
Нет. суть в том, что на JSON другого источника, у меня все работает.
А на JSON, который нужно, не пашет.
Вот код:
JSON
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
{"timestamp":1470379316,"type":"news","rows":[{"categorytitle":"Происшествия","dateline":"1470378720","media":[{"width":"200","filename":"https://www.***.ru/media/80/63/money_dengi_b10(1)__0.jpg","height":"133"}],"text":"
В Армавире возбудили уголовное дело в отношении инспектора ДПС, которого заподозрили в получении взятки.
 
\r\n
По версии следствия, 23 июня полицейский патрулировал поселок Заветный. Он остановил автомобиль с пьяным водителем и сказал, что готов не отправлять его на освидетельствование за 25 тыс. рублей, сообщает пресс-служба СУ СК РФ по Краснодарскому краю.
 
\r\n
Водитель согласился, отдал требуемую сумму, но потом сообщил о случившемся в правоохранительные органы. Расследование уголовного дела продолжается.
 
\r\n
По итогам служебной проверки принято решение об увольнении инспектора ДПС из МВД по отрицательным мотивам. Его руководителей привлекут к дисциплинарной ответственности, бывший полицейский понесет наказание в соответствии с действующим законодательством, сообщает пресс-служба ГУ МВД РФ по Краснодарскому краю.
 
","link":"https://www.***.ru/news/401542/","username":"Anton","categoryid":"7","title":"В Армавире полицейского заподозрили в получении взятки в 25 тыс. рублей","anouns":"Инспектор ДПС предлагал за деньги не отправлять пьяного водителя на освидетельствование","newsid":"401542"},{"categorytitle":"Образование","dateline":"1470378360","media":[{"width":"200","filename":"https://www.***.ru/media/c0/1c/money_dengi_b8__0.jpg","height":"133"}],"text":"
На подготовку 73 городских образовательных организаций столицы Адыгеи Адыгеи к новому учебному году было направлено свыше 19 млн рублей, часть из которых – депутатские средства. Об этом сообщили в пресс-службе администрации Майкопа.
 
\r\n
"В зданиях школ и детских садов проводится косметический ремонт спортивных и актовых залов, столовых, учебных и медицинских кабинетов, рекреаций. Производится замена дверных и оконных блоков, ремонтируются крыши и ограждения, приобретается мебель и необходимое оборудование", – отметили в администрации города.
 
\r\n
Кроме того, в рамках федерального проекта, направленного на создание условий для занятий спортом в сельских образовательных организациях, из федерального бюджета получена субсидия на ремонт спортзала в СОШ №18 поселка Гавердовского. 
 
"Соответствующие мероприятия в рамках муниципальной программы "Доступная среда" будут выполнены в ДОУ №26, ДОУ №37, ДОУ№39, а также в МКОУ "Специальная (коррекционная) общеобразовательная школа VIII вида". Качество выполняемых работ – на контроле мэра города Александра Наролина", – уточнили в пресс-службе мэрии Майкопа.
 
","link":"https://www.yuga.ru/news/401541/","username":"Дарья","categoryid":"120","title":"В Майкопе на косметический ремонт школ выделили 19 млн рублей","anouns":"В Майкопе на косметический ремонт 73 образовательных организаций выделили 19 млн рублей","newsid":"401541"},{"categorytitle":"Курорты и туризм","dateline":"1470378060","media":[{"width":"200","filename":"https://www.***.ru/media/2f/95/sea_beach_b25__0.jpg","height":"133"}],"text":"
В министерстве по курортов, туризма и олимпийского наследия Краснодарского края сообщили, что загрузка пляжей черноморских курортов Кубани превысила 100%.
 
\r\n
Основной наплыв отдыхающих в пик курортного сезона наблюдают в Сочи, Геленджике и Анапе. При этом пляжи Азовского моря заполнены менее чем на половину, сообщает "Интерфакс".
 
\r\n
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,887
05.08.2016, 12:51 #4
quadenes, не очень информативно. покажите объект и имя поля которые вы читаете и не можете прочитать
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
05.08.2016, 12:55  [ТС] #5
vxg,
Рассказываю. К примеру, взяли вручную написали данный JSON, все работает:
JSON
1
2
3
4
5
6
{
  "news":[
    {"categorytitle":"Футбол",      "dateline":"1470387060","image":"https://www.yuga.ru/media/69/b3/krasnodar-birkirkara_b19__zdhiikm.jpg","text":"текст новости","link":"https://www.yuga.ru/news/401560/","username":"Светлана Кочеткова","categoryid":"126","title":"Чемпионы Сербии и Казахстана могут стать следующими соперниками "Краснодара" в Лиге Европы","anouns":"Определились все потенциальные соперники "Краснодара" в раунде плей-офф квалификации Лиги Европы","newsid":"401560"},
    {"categorytitle":"Происшествия","dateline":"1470386760","image":"https://www.yuga.ru/media/45/50/naruchniki_new_b003__11rn4jj.jpg",     "text":"текст новости","link":"https://www.yuga.ru/news/401559/","username":"Маша Волобуева",    "categoryid":"7",  "title":"В Ейском районе напавший на продуктовый магазин избил охранника трубой",                      "anouns":"Двое мужчин похитили из кассы магазина около 8 тыс. рублей",                                        "newsid":"401559"}
   ]
}
Но когда грузим JSON, описанный ранее, то прилетает ошибка "Value null at rows of type org.json.JSONObject$1 cannot be converted to JSONArray"
То есть по факту идет объект в объекте (не может прочитать ROWS)
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,887
05.08.2016, 13:05 #6
quadenes, в "плохом" объекте больше массивов чем в этом. на каком именно поле выбивает? тут
Java
1
jsonarray = jsonobject.getJSONArray("rows");
?
ну так в "хорошем" объекте такого поля вообще нет. как то не вяжется

Добавлено через 52 секунды
попробуйте убрать переносы может дуреет он них
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
05.08.2016, 15:08  [ТС] #7
vxg, Да, на этой строке ошибка

Добавлено через 56 минут
vxg, Нашли ошибку.
Проблема: в случае, если брать статический URL (к примеру, "http://lolita.com/news.json"), то работает.
Но так как страница динамическая, то беда...
Взглянул на URL, нашел символ "&".
Заменил, выглядит теперь вот так:
"http://www.****.ru/cgi-bin/kernel.cgi?module=news"+URLEncoder.encode("%26")+"act=get_json"+URLEncoder.encode("%26")+"type=news"+URLEncoder.encode(" %26")+"json_response=1"+URLEncoder.encode("%26")+"media=0"
И все равно не пашет((
Даже через String пытался. Тщетно
0
05.08.2016, 15:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2016, 15:08
Привет! Вот еще темы с решениями:

При конвертации даты возникает ошибка could not convert variant of type(Null) into type (date)
Добрый день.Помогите пожалуйста. При конвертации даты возникает ошибка could...

Ошибка could not convert variant of type null into type string
вот есть ХП ALTER PROCEDURE . (@firmP varchar(50), @name_tovar varchar(50)...

Ошибка: Could not convert variant of type (null) into type (olestr)
здравствуйте подскажите пожалуйста использую для ввода в базу sql cxgrid (по...

Ошибка could not convert variant of type (null) into type (String)
Здравствуйте. У меня появляется ошибка could not convert variant of type...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru