Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
К сожалению спецификация JSON не позволяет запаздывающую запятую. Существует несколько браузеров, которые позволят его, но обычно необходимо волноваться обо всех браузерах.
В целом я пробую, изменяют к лучшему проблему и добавляют запятую перед фактическим значением, таким образом, Вы заканчиваете с кодом, который похож на это:
s.append("[");
for (i = 0; i < 5; ++i) {
if (i) s.append(","); // add the comma only if this isn't the first entry
s.appendF("\"%d\"", i);
}
s.append("]");
, Что дополнительный одна строка кода в Вашем для цикла является едва дорогой...
Другая альтернатива я использовал, когда произведено, структура к JSON из словаря некоторой формы должна всегда добавлять запятую после каждой записи (как Вы делаете выше), и затем добавьте фиктивную запись в конце, который не имеет запаздывания запятой (но это просто лениво;->).
не работает хорошо с массивом, к сожалению.
Я обычно цикл по массиву и присоединению запятая после каждой записи в строке. После цикла я удаляю последнюю запятую снова.
, Возможно, не лучший способ, но менее дорогой, чем проверка каждый раз, если это - последний объект в цикле, я предполагаю.
Интересно, оба C & C++ (и я думаю C#, но я не уверен), конкретно позволяют запаздывающую запятую - по точно приведенной причине: Это входит в программируемо генерирующие намного легче списки. Не уверенный, почему JavaScript не последовал их примеру.
Кодеры PHP могут хотеть проверить , интегрируются () . Это берет соединения массива это использование строки.
От эти документы ...
$array = array('lastname', 'email', 'phone');
echo implode(",", $array); // lastname,email,phone
Нет. Спецификация JSON, утвержденная в http://json.org , не позволяет запаздывать запятые. Из того, что я видел, некоторые синтаксические анализаторы могут тихо позволить им при чтении строки JSON, в то время как другие бросят ошибки. Для совместимости Вы не должны включать его.
код выше мог быть реструктурирован, или чтобы удалить запаздывающую запятую при добавлении разделителя массива или добавить запятую перед объектами, пропуске этого для первого.
Как указано это не позволяется. Но в JavaScript это:
var a = Array()
for(let i=1; i<=5; i++) {
a.push(i)
}
var s = "[" + a.join(",") + "]"
(хорошо работает в Firefox, Chrome, Краю, IE11, и без впущенного IE9, 8, 7, 5)