boypush
@boypush
Geek

Как изменить такой парсер JSON?

Приветствую, помогите пожалуйста, как изменить такой парсер на JSON под новый ответ сервера.

Старый ответ сервера:
{"names":[{"name":"Oleg","act":0,"total":0},{"name":"Vitya","act":2,"total":2}]}

Старый парсер:
names = appData.filter( function(x) { return skipped.indexOf(x) < 0; })
				get("https://serv.io/set?" + names.join("|")).then(function(data) {
					result = JSON.parse(data)["names"]
					for (var i = 0; i < result.length; i++) {
						name = result[i]["name"]
						act = result[i]["act"]
						total = result[i]["total"]
					}

Новый ответ сервера:
{"Oleg":{"act":0,"total":0},"Vitya":{"act":2,"total":2}}

Как видно в новом ответе как я понял нет массива и тут имя как название объекта.
Вопрос как изменить старый парсер под новый ответ сервера.
Буду благодарен за помощь!
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
names = appData.filter(function (x) { return skipped.indexOf(x) < 0; })
get("https://serv.io/set?" + names.join("|")).then(function (data) {
    result = JSON.parse(data);
    
    Object.entries(result).forEach(([name,{act, total}])=>{
        console.log(name,act,total) // переменные name,act,total тут локальны, но сами уже разберетесь
    });


вот пример на jsfiddle https://jsfiddle.net/tfxe4q51/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы