Как проверить структуру JSON (не валидация)?

Когда приходит ответ от сервера в виде JSON, как можно эффективно проверить его структуру? Т.е. имееются ли в нем все нужные поля, учитывая иерархичные структуры?
  • Вопрос задан
  • 8221 просмотр
Пригласить эксперта
Ответы на вопрос 4
kivsiak
@kivsiak
software engineer
Распарасить и проверить как любой объект
Ответ написан
Комментировать
@LastDragon
Посмотрите в сторону JSON Schema, вроде как для этого бала придумана (http://ru.wikipedia.org/wiki/JSON#JSON_Schema, json-schema.org/).
Ответ написан
Как отправная точка:
JSON.isOfPattern = function(json, props){
	if (json == null) return false;
	for(var key in props){
		if (key in json == false) return false;
		if (typeof props == 'object' && !JSON.isOfPattern(json[key],props[key])) return false;
	}
	return true;
}

var json = { name: 'A', address: { city: 'Berlin'}};
JSON.isOfPattern(json, {name:null, address: {city: null} });
Ответ написан
@MikhailEdoshin
Если вы уверены, что JSON пришел от правильного сервера, зачем его проверять?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы