Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

не могу распарсить Json

ELEMENT Знаток (485), на голосовании 8 лет назад
protected String doInBackground(String... args) {
// Будет хранить параметры
List params = new ArrayList<>();
// получаем JSON строк с URL
JSONObject json = jParser.makeHttpRequest("тут ссылка на сайт", "GET", params);

try {

// Получаем масив из Продуктов
dolzno = json.getJSONArray("dolzno");

// перебор всех продуктов
for (int i = 0; i < dolzno.length(); i++) {
JSONObject c = dolzno.getJSONObject(i);

// Сохраняем каждый json елемент в переменную
String id = c.getString(TAG_ID);

// Создаем новый HashMap
HashMap map = new HashMap();

// добавляем каждый елемент в HashMap ключ => значение
map.put(TAG_ID, id);

// добавляем HashList в ArrayList
productsList.add(map);
}

} catch (JSONException e) {
e.printStackTrace();
}

return null;
}

Сам json-ответ корректен вроде:

{"dolzno":[{"_id":"1"},{"_id":"2"},{"_id":"4"}],"spec":[{"_id":"1"},{"_id":"2"},{"_id":"3"}],"otdel":[{"_id":"1"},{"_id":"2"},{"_id":"3"}]}
Он получается с url.

Насколько я понимаю, он содержит 3 объекта - dolzno, otdel, spec. Вот я и хочу каждый из этих обьектов запихать в arraylist. Однако программа почему-то не видит эти обьекты. (Ввожу их по названию, в примере dolzno - название первого обьекта)

После преобразования я планировал arraylist привязать к спиннеру.
В чем ошибаюсь?
Дополнен 8 лет назад
<?php
$res = array();
$response = array();
$response1 = array();
$response2 = array();

// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

// get all products from products table
$result = mysql_query("SELECT * FROM dolz");
$result1 = mysql_query("SELECT * FROM otdel");
$result2 = mysql_query("SELECT * FROM spec");

if (mysql_num_rows($result) > 0 and mysql_num_rows($result1) > 0) {
$response["dolzno"] = array();
$response1["otdel"] = array();
$response2["spec"] = array();

while ($row = mysql_fetch_array($result)) {
$product = array();
$product["_id"] = $row["_id"];

array_push($response["dolzno"], $product);
$res=array_merge((array)$res, (array)$response);
}
while ($row = mysql_fetch_array($result2)) {
$product2 = array();
$product2["_id"] = $row["_id"];

array_push($response2["spec"], $product2);
$res=array_merge((array)$res, (array)$response2);
}
while ($row = mysql_fetch_array($result1)) {
$product1 = array();
$product1["_id"] = $row["_id"];

array_push($response1["otdel"], $product1);
$res=array_merge((array)$res, (array)$response1);
}

echo json_encode($res);

} else {
$response1["success"] = 0;
$response1["message"] = "No products found";

echo json_encode($response1);
}

?>
Голосование за лучший ответ
Άηϑρέΰ ҂ Искусственный Интеллект (179996) 8 лет назад
dolzno = json.getJSONArray("dolzno");

какой тип dolzno ?
ELEMENTЗнаток (485) 8 лет назад
он в начале объявлен. JSONArray dolzno = null;
ELEMENT Знаток (485) не стал весь код копировать, , чтоб читалось полегче
dr.Drew Просветленный (34131) 8 лет назад
данная запись json хранит в себе объект с свойствами dolzno, spec, otdel, которые являются массивами объектов.
ELEMENTЗнаток (485) 8 лет назад
Значит все таки код php на сайте не правильный?
прикрепил свой php код Как тогда правильно сделать?
dr.Drew Просветленный (34131) Откуда мне знать как правильно? Ты получил то, что написал.
Похожие вопросы