Как я могу получить информацию из данных Json в формате, где почти все хранится в виде массива?

В настоящее время я использую паука, чтобы пролистать reddit и предоставить мне ссылки и заголовки в формате json. Однако при создании файла json данные сохраняются в виде отдельных массивов, как показано здесь:

[{"url": ["http://i.imgur.com/1Pw3ehZ.jpg"], "title": ["Sunset in Trinidad, CA", "bungholesex"]},
{"url": ["http://i.imgur.com/neQiFcf.jpg"], "title": ["Humboldt Bay, Eureka California", "bungholesex"]},
{"url": ["http://imgur.com/dxKHGLV"], "title": ["Crater Lake, Oregon in April", "CausticRain11"]},
{"url": ["http://imgur.com/RPv475F"], "title": ["South Dakota is seriously beautiful.", "ratt1601"]},
{"url": ["http://imgur.com/oH1u7nk"], "title": ["The view outside my back door. Virginia is alright, I guess...", "toowhitetofail"]},

Всякий раз, когда я иду, чтобы получить и отобразить данные, преобразованные с помощью json_decoder, я получаю уведомление, говорящее «преобразование массива в строку», но данные не отображаются.

-2

Решение

Попробуйте этот код:

$data = '[{"url": ["http://i.imgur.com/1Pw3ehZ.jpg"], "title": ["Sunset in Trinidad, CA", "bungholesex"]},
{"url": ["http://i.imgur.com/neQiFcf.jpg"], "title": ["Humboldt Bay, Eureka California", "bungholesex"]},
{"url": ["http://imgur.com/dxKHGLV"], "title": ["Crater Lake, Oregon in April", "CausticRain11"]},
{"url": ["http://imgur.com/RPv475F"], "title": ["South Dakota is seriously beautiful.", "ratt1601"]},
{"url": ["http://imgur.com/oH1u7nk"], "title": ["The view outside my back door. Virginia is alright, I guess...", "toowhitetofail"]}]';

$array = json_decode($data, true);
foreach ($array as &$item) {
$item['url'] = $item['url'][0];
$item['title'] = implode(', ', $item['title']);
}
echo json_encode($array);

Я использую первый элемент массива url потому что он всегда один в вашем примере. И нет смысла объединять URL-адреса — результат не будет действительным URL-адресом. Но если вы хотите, URL-адреса могут быть объединены так же, как title,

Результат будет выглядеть так:

[
{
"url": "http://i.imgur.com/1Pw3ehZ.jpg",
"title": "Sunset in Trinidad, CA, bungholesex"},
{
"url": "http://i.imgur.com/neQiFcf.jpg",
"title": "Humboldt Bay, Eureka California, bungholesex"},
{
"url": "http://imgur.com/dxKHGLV",
"title": "Crater Lake, Oregon in April, CausticRain11"},
{
"url": "http://imgur.com/RPv475F",
"title": "South Dakota is seriously beautiful., ratt1601"},
{
"url": "http://imgur.com/oH1u7nk",
"title": "The view outside my back door. Virginia is alright, I guess..., toowhitetofail"}
]

Вы можете проверить это Вот.

0

Другие решения

Ваш Json выше не действителен. вы должны удалить и добавить] в конце вашего JSON.
Вы можете проверить это с помощью json valida или здесь.

http://jsonlint.com/

[{
"url": ["http://i.imgur.com/1Pw3ehZ.jpg"],
"title": ["Sunset in Trinidad, CA", "bungholesex"]
}, {
"url": ["http://i.imgur.com/neQiFcf.jpg"],
"title": ["Humboldt Bay, Eureka California", "bungholesex"]
}, {
"url": ["http://imgur.com/dxKHGLV"],
"title": ["Crater Lake, Oregon in April", "CausticRain11"]
}, {
"url": ["http://imgur.com/RPv475F"],
"title": ["South Dakota is seriously beautiful.", "ratt1601"]
}, {
"url": ["http://imgur.com/oH1u7nk"],
"title": ["The view outside my back door. Virginia is alright, I guess...", "toowhitetofail"]
}]
-1

Вы можете использовать следующий формат для вашего требования

{
"records": [{
"url": "http://i.imgur.com/1Pw3ehZ.jpg",
"title": ["Sunset in Trinidad, CA",
"bungholesex"]
}, {
"url": "http://i.imgur.com/neQiFcf.jpg",
"title": ["Humboldt Bay, Eureka California",
"bungholesex"]
}, {
"url": "http://imgur.com/dxKHGLV",
"title": ["Crater Lake, Oregon in April",
"CausticRain11"]
}, {
"url": "http://imgur.com/RPv475F",
"title": ["South Dakota is seriously beautiful.",
"ratt1601"]
}, {
"url": "http://imgur.com/oH1u7nk",
"title": ["The view outside my back door. Virginia is alright, I guess...",
"toowhitetofail"]
}]
}
-1
По вопросам рекламы [email protected]