О, это вообще больная тема. Пользоваться стандартными контролами лично мне оказалось настолько неудобно и код генерировался настолько чудовищный, что после первых трёх-четырёх попыток я оставил идею использования этих контролов в работе.
И вся универсальность стандартных MS контролов почему-то так и норовит приобрести приставку «псевдо».
Может быть за некоторые годы MS исправил ситуацию, но что-то не тянет тратить время на эксперименты :(
Зависит от серверного языка, да?
Кстати, если на уровне сервера ожидается числовое значение, а приходит пустое — то надо делать дополнительную проверку, чтобы в этом случае вывести '' или null, так как например милый ASP (не ASP.NET, а древняя версия) выводит это как просто пустую строку. Не Null, не "", а просто как пустую строку. И, как результат, может получиться невалидный json.
Это риторический вопрос.
Я в любом случае не допускаю генерацию невалидного кода — что в XML, что в JSON. Лишь считаю, что в случае JSON вероятность получения невалидного кода чуть выше.
Мы сейчас рассматриваем «аналог XPath для JSON». Вот пример выражения XPath, как Вы просили. Как при помощи JSON получить такой же результат, не прибегая к хардкоднутому перебору элементов? Я не могу придумать.
А можно с этого места поподробнее? Что за аналог XPath для JSON окромя банального перебора элементов/атрибутов и сравнивания с требуемой конструкцией? В XPath мне кажется достаточно удобно можно одной махонькой строчкой описать сразу все требуемые условия ко всем родительским элементам, которые меня интересуют. К сожалению, понятия не имею, как это реализовать в JSON. Покажите?
А вообще тот факт, что библиотечка самостоятельно обрабатывает исключения при невалидном ответе в JSON и вызывает определённую функцию — это скорее плюс, а не минус. Ибо исключительная ситуация — она как раз должна быть замечена. А здесь уже за нас озаботились тем, чтобы мы мимо неё не прошли!
Для простых — не стоит. Однако, если Вам встретится «хитрая древовидная структура» — не забудьте посмотреть в сторону XML. Возможно, использование XPath сэкономит Вам огромную кучу времени.
А вариант с невалидным xml-ем и json-ом одинаков — данных мы не получим. Если конечно вы после этот xml сами не парсите регулярками хитрыми, так, подстраховываясь.
При обращении за JSON или XML в Javascript обычно используются стандартные библиотечки Ajax. Так вот, как-то так сложилось, что в них обычненько есть встроенные средства парсинга JSON, а вот XML надоть парсить ручками. И если я пишу парсинг ручками, то ошибочку невалидного XML получу на этом этапе. А при «автоматическом» парсинге библиотечкой ошибку обработает библиотечка. Или не обработает и всё произойдёт «втихую».
Спасибо :)
И вся универсальность стандартных MS контролов почему-то так и норовит приобрести приставку «псевдо».
Может быть за некоторые годы MS исправил ситуацию, но что-то не тянет тратить время на эксперименты :(
Кстати, если на уровне сервера ожидается числовое значение, а приходит пустое — то надо делать дополнительную проверку, чтобы в этом случае вывести '' или null, так как например милый ASP (не ASP.NET, а древняя версия) выводит это как просто пустую строку. Не Null, не "", а просто как пустую строку. И, как результат, может получиться невалидный json.
Ну и мне кажется, что XPath перебирает элементы быстрее, чем JS :) Но это наверное вопрос для отдельной дискуссии.
Я в любом случае не допускаю генерацию невалидного кода — что в XML, что в JSON. Лишь считаю, что в случае JSON вероятность получения невалидного кода чуть выше.
2. Если использовать не атрибуты, а элементы, то будет всё валидно.
Имя атрибута — непусто :) А значение — запросто.
Хотя первое утверждение тоже не стопроцентно :(
А попробуйте посмотреть на это как «экономия на 20%»?
При обращении за JSON или XML в Javascript обычно используются стандартные библиотечки Ajax. Так вот, как-то так сложилось, что в них обычненько есть встроенные средства парсинга JSON, а вот XML надоть парсить ручками. И если я пишу парсинг ручками, то ошибочку невалидного XML получу на этом этапе. А при «автоматическом» парсинге библиотечкой ошибку обработает библиотечка. Или не обработает и всё произойдёт «втихую».