Таким образом, у меня есть этот JSON, который затем мое действие получает к строке:
{"popular":
{"authors_last_month": [
{
"url":"http://activeden.net/user/OXYLUS",
"item":"OXYLUS",
"sales":"1148",
"image":"http://s3.envato.com/files/15599.jpg"
},
{
"url":"http://activeden.net/user/digitalscience",
"item":"digitalscience",
"sales":"681",
"image":"http://s3.envato.com/files/232005.jpg"
}
{
...
}
],
"items_last_week": [
{
"cost":"4.00",
"thumbnail":"http://s3.envato.com/files/227943.jpg",
"url":"http://activeden.net/item/christmas-decoration-balls/75682",
"sales":"43",
"item":"Christmas Decoration Balls",
"rating":"3",
"id":"75682"
},
{
"cost":"30.00",
"thumbnail":"http://s3.envato.com/files/226221.jpg",
"url":"http://activeden.net/item/xml-flip-book-as3/63869",
"sales":"27",
"item":"XML Flip Book / AS3",
"rating":"5",
"id":"63869"
},
{
...
}],
"items_last_three_months": [
{
"cost":"5.00",
"thumbnail":"http://s3.envato.com/files/195638.jpg",
"url":"http://activeden.net/item/image-logo-shiner-effect/55085",
"sales":"641",
"item":"image logo shiner effect",
"rating":"5",
"id":"55085"
},
{
"cost":"15.00",
"thumbnail":"http://s3.envato.com/files/180749.png",
"url":"http://activeden.net/item/banner-rotator-with-auto-delay-time/22243",
"sales":"533",
"item":"BANNER ROTATOR with Auto Delay Time",
"rating":"5",
"id":"22243"},
{
...
}]
}
}
К этому можно получить доступ здесь также, хотя это, потому что это - настоящая длинная строка, я обрезал вышеупомянутое вниз для отображения то, что необходимо.
В основном я хочу смочь получить доступ к объектам от "items_last_week" и создать список их - первоначально, мой план состоял в том, чтобы иметь 'миниатюру' слева с 'объектом' рядом с ним, но от проигрывания вокруг с SDK сегодня это кажется слишком трудным или невозможным достигнуть этого, таким образом, я был бы более, чем доволен просто наличием данных 'объекта' из 'items_last_week' в списке.
При прибытии из php, я изо всех сил пытаюсь пользоваться любой из библиотек JSON, которые доступны Java, как это, кажется, намного больше, чем строка кода, которую я должен буду десериализовать (я думаю, что это - правильное слово) JSON, и они все, кажется, требуют некоторой формы дополнительного класса кроме сценария JSONArray/JSONObject, который я имею, которому не нравится то, что items_last_week вкладывается (снова, я думаю, что это - терминология JSON), и занимает ужасное долгое время для работы эмулятора Android.
Так, в действительности мне нужно (предпочтительно простой) способ передать items_last_week данные ListView. Я понимаю, что мне будет нужен пользовательский адаптер, который я могу, вероятно, получить голову вокруг, но я не могу понять, неважно, сколько изо дня я только что потратил попытку понять это, как получить доступ к определенным частям строки JSON..
первоначально я планировал, что у меня будет 'миниатюра' слева и 'элемент' рядом с ним, но, поиграв с SDK сегодня, это кажется слишком сложно или невозможно достичь это
Это далеко не невозможно, но это будет утомительно, если только вы не используете что-то, что уже обернуло этот шаблон для вас (и что, надеюсь, достаточно "правильно"). В Интернете проблемы производительности/пропускной способности были проблемой пользователя - в мобильном телефоне это ваша проблема.
поскольку это, похоже, гораздо больше, чем просто строка кода, которую мне нужно будет десериализовать (я думаю, это правильное слово) JSON
new JSONObject(data)
- это одна строчка кода. Теперь, получение JSON, которое, как я предполагаю, вы делаете из вышеупомянутого URL, будет состоять из нескольких строк кода. Ни разбор JSON, ни получение его из Интернета не являются уникальными для Android - все это выглядело бы точно так же и в настольном Java-приложении, и в Java-сервлете, и в любом другом.
кроме JSONArray/JSONObject у меня есть скрипт, которому не нравится что items_last_week является вложенным
У меня не было проблем с разбором JSON со структурами, подобными тем, что представлены в вашем файле. Более того, это вряд ли уникально для Android - парсер JSON используется во многих других проектах на Java.
и занимает ужасно много времени для запуска на эмуляторе Android
Скорость эмулятора привязана к скорости вашей машины для разработки. Для меня эмулятор обычно медленнее, чем реальное оборудование телефона... а мой настольный компьютер четырехъядерный. Имейте в виду, что эмулятор притворяется ARM-чипсетом, работающим на вашем ПК, преобразуя ARM-опкоды в x86-опкоды на лету, поэтому он не будет быстрым и не будет хорошо использовать несколько ядер.
Итак, по сути, мне нужен (желательно простой) способ передать items_last_week в ListView.
В Android нет ничего, чтобы взять произвольную структуру JSON с произвольными данными и напрямую передать ее в ListView
. Это не уникально для JSON - XML будет демонстрировать подобное явление.
Ваши варианты:
ListAdapter
, который обернет разобранный JSON. MatrixCursor
(представьте двумерный массив данных) и использовать SimpleCursorAdapter
. ArrayList
и используйте ArrayAdapter
. В краткосрочной перспективе вариант #3, вероятно, самый простой.
Я понимаю, что мне понадобится пользовательский адаптер, который я, вероятно, смогу но я не могу понять, независимо от того, сколько дней я только что потратил, пытаясь разобраться в этом, как получить доступ к определенным частям JSON string...
И этот вопрос слишком расплывчатый для того, чтобы получить помощь. Вы могли бы рассмотреть возможность открытия отдельного вопроса с тегом Java и JSON, где вы подробно описываете, где у вас возникают проблемы с парсером json.org.