Member 10521029 Ответов: 1

JSON decode удаляет null и 0


Я использую json_decode ($content, true) для декодирования строки json в массив php. Я обнаружил, что нулевое значение было преобразовано в пустое пространство. Тогда я справляюсь с этим.
if ($cell=='')
{
$values .= 'Null,';
}

Но я обнаружил, что son_decode также удаляет ноль. Как получить ноль как ноль и ноль как ноль из json_decode? Кто-нибудь поможет?

Что я уже пробовал:

json_decode($content, true)

if ($cell=='')
{
$values .= 'Null,';
}

Suvendu Shekhar Giri

Можете ли вы показать вход?
Убедитесь, что это данные в кодировке UTF-8.

Member 10521029

Я использовал следующий метод для кодирования в c#. Я заполняю datatable из ms sql server. Как я могу подтвердить UTF-8? Пожалуйста помочь.

частная статическую строку DataTableToJson(объект DataTable объект DataTable)
{
JavaScriptSerializer serializer = новый JavaScriptSerializer();
var rows = (из DataRow d в dataTable. Rows
выберите dataTable.Столбцы.Бросание&ЛТ;объект datacolumn и GT;().ToDictionary(кол =&ГТ; кол.ColumnName, col => d[col])).Список();

возвратный сериализатор.Сериализация (строки);
}

Member 10521029

Я проверил, что значение равно нулю после сериализации в строку json. Он удаляется или заменяется на пустое пространство после декодирования его в массив php. Спасибо

1 Ответов

Рейтинг:
1

Member 10521029

I worked it out. There is no encoding issue. It was in PHP array. PHP array returns empty for Null value. var_dump() returns Null value as Null but print_r() returns empty. I used the following code to get Null value as Null. 

if ($cell==Null)
{
 $values .= 'Null,';
} 

But PHP interpret 0 and false as Null also. So the above code returns 0 and false as null also. Here I changed it as below and got it worked.

if ($cell===Null)
{
 $values .= 'Null,';
}