Работа с JSON

Купить VPN
Профессиональная разработка сайта
Хостинг для твоего сайта PHP7.3 SSD [+]
Печать / RSS
1

1.
Чатланин
0
Идея такова, данные полученные с БД преобразовать в JSON формат, условие такое что не все поля нужны, допустим 12345 нам нужны выборочно 235. И весь полученный результат сохранить в .txt (в преобразованном виде JSON)
---
Есть неплохой css framework таблица данных, работает по JSON, хочу прикрутить это дело)
помогите реализовать концепцию... с JSON не приходилось работать..
Изменил: Don (25.11.2014 / 09:48)
2.
Оранжевые штаны
0
1. БИТ, по твоему описанию на ум приходят функции unlink, foreach(?), json_encode. Больше ничего не могу сказать.
3.
Оранжевые штаны
0
"Есть неплохой css framework таблица данных, работает по JSON" css framework не может сам работать с json, непонятный вопрос.
4.
Пришелец
0
Можно не сохранять данные в файл, а отдавать их через php-файл.

<?php

// подключение к базе данных

// предположим, что в переменную $data ты выбрал из базы данных необходимые данные

$response = array();
foreach ($data as $item)
$response[] = array('name' => $item['name'], ...);


echo json_encode($response);

Вот так преобразуешь данные в JSON-формат.

Муз-ТВ, скорее всего там JS-скрипт их подставляет в таблицу.
Изменил: iNeeXT (25.11.2014 / 17:02)
5.
Малиновые штаны
0
Все просто. Чтобы преобразовать массив в JSON, на стороне сервера используй ф-ю json_encode(). А на стороне клиента преобразуй его в объект и работай как с объектом JavaScript.

Например, ты отправляешь Ajax запрос на сервер, а там выполняется примерно вот такой код:
<?php
$array = array(
array(
'title' => 'Заголовок 1',
'desc' => 'Описание 1'
),
array(
'title' => 'Заголовок 2',
'desc' => 'Описание 2'
),
array(
'title' => 'Заголовок 3',
'desc' => 'Описание 3'
)
);
exit(json_encode($array));

При этом сервер тебе вернет вот это:
[{"title":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1","desc":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 1"},{"title":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2","desc":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 2"},{"title":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3","desc":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 3"}]

Затем в клиенте обрабатываешь пришедшие данные вот такой конструкцией:
var parseJSON = (window.JSON && JSON.parse) ? function (obj) {
try { return JSON.parse(obj); } catch (e) {
return eval('('+obj+')');
}
} : function(obj) {
return eval('('+obj+')');
};

Здесь проверяется, поддерживает ли браузер метод JSON.parse. Если да - данные обрабатываются им. Если нет - то eval().

Например покажу на примере работы моего самописного аякс-объекта:
Ajax.get('/server.php', function(http_request){
// распарсили полученные данные
var data = parseJSON(http_request.responseText);

// посчитали размер объекта
var count = data.count;

// перебрали объект
for(var i=0; i<count; i++) {

// алерт отдаст "Заголовок1 Описание1"
alert(data[i]['title']+'\n'+data[i]['desc']);
}
});

Либо так:
// отправили запрос
Ajax.get('/server.php', function(http_request){

// распарсили полученные данные
var data = parseJSON(http_request.responseText);

// напрямую обратились к массиву
// алерт отдаст "Заголовок2 Описание2"
alert(data[1]['title']+'\n'+data[1]['desc']);
});
Изменил: Дмитрий (25.11.2014 / 20:12)
6.
Оранжевые штаны
0
Вот не лень же было так расписать.
7.
Оранжевые штаны
0
6. Муз-ТВ, раз в две недели можно))
Хороший ответ Дмитрий, все как надо расписал.
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск