2012-03-17 2 views
3

На сервере я сериализую свои объекты, а иногда некоторые свойства являются нулевыми. На странице, когда я разбираю строку, нулевые свойства десериализуются правильно и в моем javascript я проверяю, действительно ли свойства, для которых может быть нуль, являются нулевыми или нет, прежде чем работать с ними; например:json и null значения

if (TheObject.TheProp && TheObject.TheProp.length) {...} 

Это не сбой, и он работает. Мой вопрос заключается в следующем: должен ли я, на сервере, заполнять каждое свойство чем-то (т. Е. «» Для строк и 0 для чисел), потому что считается хорошей практикой или нормально иметь нулевые свойства на странице?

Спасибо за ваши предложения.

+1

Если свойство «null», то это наиболее семантически, чтобы оно было «null». JSON имеет значение «null»; Я не вижу, какое преимущество имеет пустая строка. – pimvdb

+0

Ну '' "' два символа короче, чем 'null', но, на мой взгляд, существует значительная смысловая разница между пустой строкой и' null'; по крайней мере, там, безусловно, может быть. – Pointy

ответ

1

В JavaScript null - это значение, аналогичное "" и 0. Значение равно undefined, если вы его определили, но не присвоили значение, но даже это нормально. undefined никогда не произойдет в структуре данных JSON.

Просто убедитесь, что вы правильно обрабатываете null s, и все должно быть в порядке.

1

Это действительно зависит от вас. Если существует разница между пустым значением "" и несуществующим значением null, тогда вы хотели бы сохранить null в качестве маркера несуществующего значения и "" как рынок для пустого значения.

Если между ними нет разницы в приложении, то вы можете указать пустое строковое значение либо с "", либо с null. В некоторых случаях «проще использовать "", потому что это строка, поэтому вы можете обрабатывать все свои значения в виде строк, но вы используете их исключительно для вашего собственного удобства кодирования.

Нет единого ответа, который более прав.

+0

ok, thanks: Я оставлю свои объекты как есть и продолжаю проверять значение null через (Object.Property) – frenchie

Смежные вопросы