Member 12974741 Ответов: 2

Петли JSON-данных в цикле for


Привет Ppl,

Я пытаюсь зациклить вывод Json в цикл for и сохранить их в другом массиве, так как мне нужны только определенные значения из Json....

вот ниже код... я не могу получить поля DTSTART,DTEND.. я думаю, это из-за именования.. я не смогу изменить имена параметров, когда получу их из вывода.

Есть идеи, как получить значение этих идентификаторов? Спасибо

<!DOCTYPE html>
<html>
<body>

<p>Looping through arrays inside arrays.</p>

<p id="demo"></p>

<script>

var myObj, i, j, x = "";
myObj = {
      "cars": [
        {
		"DTSTART;TZID=America/New_York": "20170211T123000",
		"DTEND;TZID=America/New_York": "20170211T133000",
		"RRULE": "FREQ=WEEKLY;BYDAY=SA",
		"DTSTAMP": "20170213T195454Z",
		"UID": "ks0lgptphtr46rdt4a6p94l2f8@google.com",
		"CREATED": "20170211T152911Z",
		"DESCRIPTION": "",
		"LASTMODIFIED": "20170211T152911Z",
		"LOCATION": "",
		"SEQUENCE": "0",
		"STATUS": "CONFIRMED",
		"SUMMARY": "monday meeting",
		"TRANSP": "OPAQUE"
	}
    ]
}

for (i in myObj.cars) {
    x += "<h1>" + myObj.cars[i].SUMMARY + "</h1>";
     x += "<h1>" + myObj.cars[i].DTSTART + "</h1>";
   
}

document.getElementById("demo").innerHTML = x;

</script>

</body>
</html>


Что я уже пробовал:

Вот код для выполнения

Tryit Editor v3. 3[^]

Patrice T

поставьте свой код под сомнение, а не ссылку

Member 12974741

Я так и сделал... часть вопроса имеет тот же код... вы не могли видеть?

Karthik_Mahalingam

Всегда использовать  Ответить   кнопка для отправки комментариев / запросов заинтересованному пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

Member 12974741

а...понял...кажется, я пропустил прошлый раз.. Спасибо за это.Надеюсь, у вас все отлично получается!

Karthik_Mahalingam

добро пожаловать :)

2 Ответов

Рейтинг:
8

Peter Leow

Это так же просто, как добавить квадрат [], т. е.

myObj.cars[i]["DTEND;TZID=America/New_York"]
Тем не менее, старайтесь избегать необычных ключей, подобных этому, так как это нарушит обычный код обработки JSON.


Member 12974741

Это, кажется, классное решение.... это все упрощает.. Оценил Питер!!

Peter Leow

Рад, что это помогает.

Bryian Tan

Приятно!!! Не совсем понимая, о чем я думаю, я попробовал myObj.cars[i].["DTEND;TZID=America/New_York"] раньше, и это не сработало. Вот почему я пришел с идеей петли.

Рейтинг:
20

Bryian Tan

Хорошо, неопределенная ошибка из-за именования ключа, имя ключа - "DTSTART;TZID=America/New_York", а не "DTSTART". Исходя из описанных вами обстоятельств, вот альтернатива для доступа к значению массива с помощью ключа типа/startsWith. Теперь ваша следующая задача-выяснить, как отобразить результат в том порядке, который вы предпочитаете, потому что цикл начинается сверху вниз.

for (var i = 0; i < myObj.cars.length; i++){
    var obj = myObj.cars[i];
    for (var key in obj){
    
    	if (key == "SUMMARY") {
         	x += "<h1>" + obj[key] + "</h1>";
        }
        
        if (key.startsWith("DTSTART")) {
         	x += "<h2>" + obj[key] + "</h2>";
        }
    }
}


Выход:
20170211T123000
встреча в понедельник


Member 12974741

Это помогает...Большое спасибо!!

Bryian Tan

Пожалуйста

Karthik_Mahalingam

5

Bryian Tan

Спасибо.

Karthik_Mahalingam

добро пожаловать :)