jQuery или PHP для анализа и фильтрации JSON, вывод только определенных узлов

0

Вот фрагмент моего файла JSON

[{
        "id" : "61344",
        "bandappname" : null,
        "stageID" : "637",
        "title" : "The band title",
        "description" : "Some description",
        "date" : "Friday 22nd August",
        "time" : "23:00",
        "stageName" : "name of the stage",
        "startTime" : 1408662000,
        "endTime" : 1408662060,
        "weather" : {
            "iconcode" : "04n",
            "desc" : "broken clouds",
            "temp" : 17
        },
        "rating" : 0,
        "starstyle" : "",
        "userrating" : 0,
        "rated" : false,
        "plannercount" : 3,
        "eventimage" : "image.jpg",
        "lastupdated" : "1407413423",
        "activityid" : null,
        "activityliked" : null
    }
]

Вот несколько сотен узлов вроде этого. Имеются 3 даты (6-й элемент вниз) и около 8 stageID (3-й элемент вниз)

Поэтому я думаю о создании 24 DIVs для размещения каждой уникальной комбинации даты/сцены.

Поэтому мой вопрос заключается в том, что для каждого div, как бы я выводил следующее, относящееся к DIV (stageID и дате), в порядке убывания (где название и время являются фактическим значением)

title - time
title - time
title - time
...
title - time

Я пробовал искать PHP и Last.fm API и другие записи StackOverflow, но вернулся к пустой странице. Моя главная проблема заключается не в том, чтобы знать, как перемещаться по узлам

Может ли DIVs создаваться автоматически - он должен быть статическим? Должен ли я использовать jQuery или PHP?

Я получил это далеко с jQuery, но я не уверен, как заказать элементы в каждом div на основе element.startTime

    <!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>JSON</title>
  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script>

function convertUnix (unix) {
    newDate = new Date(unix *1000)  
    var curr_hour = newDate.getHours();
    var curr_min = newDate.getMinutes();
    var convertedTime = curr_hour + ":" + curr_min;
    return convertedTime
}

$.getJSON('json.json', function(data) {
    $.each(data, function(index, element) {
        var titleTime = "(" + element.startTime + ") "+ element.title + " - " + convertUnix(element.startTime) + " - " + convertUnix(element.endTime);

        if (element.date=='Friday 22nd August') {
            $('div#'+element.stageID+'-1').append($('<p>', {text: titleTime}));
        }
        if (element.date=='Saturday 23rd August') {
            $('div#'+element.stageID+'-2').append($('<p>', {text: titleTime}));
        }
        if (element.date=='Sunday 24th August') {
            $('div#'+element.stageID+'-3').append($('<p>', {text: titleTime}));
        }
    });
});
</script>
<style> 
div {border:1px solid black; width:30%; float:left; background-color:#ccc; padding:20px; margin-left:20px;margin-bottom:20px;}
div:nth-child(3n) {clear:both; margin-bottom:20px;}
</style>
</body>

<div id="643-1"></div>
<div id="643-2"></div>
<div id="643-3"></div>

<div id="644-1"></div>
<div id="644-2"></div>
<div id="644-3"></div>

<div id="642-1"></div>
<div id="642-2"></div>
<div id="642-3"></div>

<div id="641-1"></div>
<div id="641-2"></div>
<div id="641-3"></div>

<div id="640-1"></div>
<div id="640-2"></div>
<div id="640-3"></div>

<div id="639-1"></div>
<div id="639-2"></div>
<div id="639-3"></div>

<div id="638-1"></div>
<div id="638-2"></div>
<div id="638-3"></div>

<div id="637-1"></div>
<div id="637-2"></div>
<div id="637-3"></div></html>
Теги:

1 ответ

1
$json_str = '[{
        "id" : "61344",
        "bandappname" : null,
        "stageID" : "637",
        "title" : "The band title",
        "description" : "Some description",
        "date" : "Friday 22nd August",
        "time" : "23:00",
        "stageName" : "name of the stage",
        "startTime" : 1408662000,
        "endTime" : 1408662060,
        "weather" : {
            "iconcode" : "04n",
            "desc" : "broken clouds",
            "temp" : 17
        },
        "rating" : 0,
        "starstyle" : "",
        "userrating" : 0,
        "rated" : false,
        "plannercount" : 3,
        "eventimage" : "image.jpg",
        "lastupdated" : "1407413423",
        "activityid" : null,
        "activityliked" : null
    }
]';

$arr = json_decode($json_str);

echo $arr['stageID']." ".$arr['title']." ".$arr['date']." ".$arr['time'];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню