Bitrix json error syntax error 4

json error syntax error 4 У меня очень странная проблема. У меня есть веб-сервис JSON. Но когда я загружаю свой JSON с этим кодом: Я получил ошибку: SYNTAX ERROR ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ. (но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей) Решение […]

Содержание

  1. json error syntax error 4
  2. Решение
  3. Другие решения
  4. Описание
  5. Список параметров
  6. Возвращаемые значения
  7. Примеры
  8. Смотрите также
  9. json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке
  10. Решение
  11. Другие решения
  12. Bitrix: JSON error: Syntax error
  13. json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке
  14. Решение
  15. Другие решения
  16. json_last_error
  17. Описание
  18. Список параметров
  19. Возвращаемые значения
  20. Примеры
  21. Смотрите также

json error syntax error 4

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка PHP 5.3.3
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении PHP 5.5.0
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано PHP 7.0.0
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован PHP 7.0.0

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = « » ;

foreach ( $json as $string )

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

I had previously asked the same question. I would like to decode the json from: http://pad.skyozora.com/data/pets.json. Below is the code I used previously:

From the last answer I know there is UTF8 DOM in the json return. I tried the answer from a similar question: json_decode returns NULL after webservice call, but all of the answers not work for me.

And after do more research I found a way that works:

This successfully decode the json into array. However all Chinese and Japanese character string were removed too. Any ideas?

Edited:

and give me the error:

But I couldn’t see any problem with this part of json.

Источник

json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

Источник

Bitrix: JSON error: Syntax error

При настройке сайта, пункт «Рабочий стол — Маркетинг — Поисковая оптимизация — Поисковые системы — Яндекс» при попытке авторизоваться через Яндекс и вводе полученного от Яндекс кода подтверждения получаю «Не удалось получить авторизацию: JSON error: Syntax error [4]». Причем данная ошибка видна только в Mozilla Firefox, в других браузерах просто не происходит авторизации. Битрикс установлен в виртуальной машине от разработчика (Bitrix virtual appliance version 7.4.3).

Обратился в ТП битрикса, неделю переписывался, попросили доступы не только в админку сайта но и доступы к аккаунту Яндекса (зачем?). После недельной переписки с ТП выяснилось, что есть проблема с подключением к сайту именно Яндекса.

Проверить проблему подключения к «oauth.yandex.ru» можно кодом:

$res = stream_socket_client(«ssl://oauth.yandex.ru:443», $errno, $errstr, 5);
var_dump($res);

И проблема была из-за того, что виртуалка была создана на CentOS 6.10, в которой для корректной работы с сервисами Яндекса необходимо принудительно обновить CA.

Делается следующим образом:

На всякий случай скопировали текущие CA (могут быть по другому пути):

cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem tls-ca-bundle.pem

Скачали новые и обновили CA.

curl https://www.certum.pl/CA.pem > /etc/pki/ca-trust/source/anchors/certum_pl_CA.pem
update-ca-trust extract

После этого вышеприведенный код перестал выдавать ошибку при подключении к сайту Яндекса.

Источник

json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

Источник

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = «<‘Organization’: ‘PHP Documentation Team’>» ;

foreach ( $json as $string ) <
echo ‘Декодируем: ‘ . $string ;
json_decode ( $string );

switch ( json_last_error ()) <
case JSON_ERROR_NONE :
echo ‘ — Ошибок нет’ ;
break;
case JSON_ERROR_DEPTH :
echo ‘ — Достигнута максимальная глубина стека’ ;
break;
case JSON_ERROR_STATE_MISMATCH :
echo ‘ — Некорректные разряды или несоответствие режимов’ ;
break;
case JSON_ERROR_CTRL_CHAR :
echo ‘ — Некорректный управляющий символ’ ;
break;
case JSON_ERROR_SYNTAX :
echo ‘ — Синтаксическая ошибка, некорректный JSON’ ;
break;
case JSON_ERROR_UTF8 :
echo ‘ — Некорректные символы UTF-8, возможно неверно закодирован’ ;
break;
default:
echo ‘ — Неизвестная ошибка’ ;
break;
>

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

Источник

Перейти к контенту

При настройке сайта, пункт «Рабочий стол — Маркетинг — Поисковая оптимизация — Поисковые системы — Яндекс» при попытке авторизоваться через Яндекс и вводе полученного от Яндекс кода подтверждения получаю «Не удалось получить авторизацию: JSON error: Syntax error [4]». Причем данная ошибка видна только в Mozilla Firefox, в других браузерах просто не происходит авторизации. Битрикс установлен в виртуальной машине от разработчика (Bitrix virtual appliance version 7.4.3).

Обратился в ТП битрикса, неделю переписывался, попросили доступы не только в админку сайта но и доступы к аккаунту Яндекса (зачем?). После недельной переписки с ТП выяснилось, что есть проблема с подключением к сайту именно Яндекса.

Проверить проблему подключения к «oauth.yandex.ru» можно кодом:

$res = stream_socket_client(«ssl://oauth.yandex.ru:443», $errno, $errstr, 5);
var_dump($res);

И проблема была из-за того, что виртуалка была создана на CentOS 6.10, в которой для корректной работы с сервисами Яндекса необходимо принудительно обновить CA.

Делается следующим образом:

update-ca-trust enable

На всякий случай скопировали текущие CA (могут быть по другому пути):

cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem tls-ca-bundle.pem

Скачали новые и обновили CA.

curl https://www.certum.pl/CA.pem > /etc/pki/ca-trust/source/anchors/certum_pl_CA.pem
update-ca-trust extract

После этого вышеприведенный код перестал выдавать ошибку при подключении к сайту Яндекса.


I had previously asked the same question. I would like to decode the json from: http://pad.skyozora.com/data/pets.json. Below is the code I used previously:

<?php
$html=file_get_contents("http://pad.skyozora.com/data/pets.json");
var_dump(json_decode($html,true)); //return null
var_dump(json_last_error()); // return 4
?>

From the last answer I know there is UTF8 DOM in the json return. I tried the answer from a similar question: json_decode returns NULL after webservice call, but all of the answers not work for me.

And after do more research I found a way that works:

<?php
$html=file_get_contents("http://pad.skyozora.com/data/pets.json");
$html=preg_replace('/[x00-x1Fx80-xFF]/', '', $html);
var_dump(json_decode($html, true));
var_dump(json_last_error());
?>

This successfully decode the json into array. However all Chinese and Japanese character string were removed too. Any ideas?

Edited:

I used http://jsonlint.com/ to decode the json from http://pad.skyozora.com/data/pets.json. It stops at here:

[
            161,
            "進化的紅面具",
            0,
            -1,
            0,
        -1,
        1,
        1,
        10,
        50,
        1,
        0,
        0,
        0,
        0,
        [

        ],
        [
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ],
        "http://i.imgur.com/Y1jZlGW.png",
        [
            "ウルカヌ火山",
            "メジェド

and give me the error:

Parse error on line 5001:
...山",                "メジェド
----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

But I couldn’t see any problem with this part of json.

Не открываются пользовательские группы после обновления (проблема с кодировкой)

 

Пользователь 4606427

Заглянувший

Сообщений: 3
Регистрация: 18.09.2020

#1

22.06.2022 21:45:46

После последних обновлений портала (коробка), не отображаются содержимое пользовательских групп.
Какие могут быть способы решения?

При открытии любой группы (даже созданную только что) получаю такое:

Часть лога /var/log/php/exceptions.log

Код
2022-06-22 21:04:11 - Host: <имя хоста>:443 - UNCAUGHT_EXCEPTION - [BitrixMainArgumentException] 
JSON error: Malformed UTF-8 characters, possibly incorrectly encoded [5] (100)
/home/bitrix/www/bitrix/modules/main/lib/web/json.php:160
#0: BitrixMainWebJson::throwException(string)
   /home/bitrix/www/bitrix/modules/main/lib/web/json.php:147
#1: BitrixMainWebJson::checkException(integer)
   /home/bitrix/www/bitrix/modules/main/lib/web/json.php:37
#2: BitrixMainWebJson::encode(array)
   /home/bitrix/www/bitrix/components/bitrix/main.interface.buttons/templates/.default/template.php:89
#3: include(string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:790
#4: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:885
#5: CBitrixComponentTemplate->IncludeTemplate(array)
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:775
#6: CBitrixComponent->showComponentTemplate()
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:716
#7: CBitrixComponent->includeComponentTemplate()
   /home/bitrix/www/bitrix/components/bitrix/main.interface.buttons/class.php:789
#8: CMainInterfaceButtons->executeComponent()
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:660
#9: CBitrixComponent->includeComponent(string, array, NULL, boolean)
   /home/bitrix/www/bitrix/modules/main/classes/general/main.php:1072
#10: CAllMain->IncludeComponent(string, string, array)
   /home/bitrix/www/bitrix/templates/bitrix24/components/bitrix/socialnetwork.group_menu/.default/template.php:451
#11: include(string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:790
#12: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:885
#13: CBitrixComponentTemplate->IncludeTemplate(array)
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:775
#14: CBitrixComponent->showComponentTemplate()
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:716
#15: CBitrixComponent->includeComponentTemplate()
   /home/bitrix/www/bitrix/components/bitrix/socialnetwork.group_menu/component.php:354
#16: include(string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:607
#17: CBitrixComponent->__includeComponent()
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:684
#18: CBitrixComponent->includeComponent(string, array, object, boolean)
   /home/bitrix/www/bitrix/modules/main/classes/general/main.php:1072
#19: CAllMain->IncludeComponent(string, string, array, object, array)
   /home/bitrix/www/bitrix/components/bitrix/socialnetwork_group/templates/.default/util_group_menu.php:52
#20: include(string)
   /home/bitrix/www/bitrix/components/bitrix/socialnetwork_group/templates/.default/group.php:99
#21: include(string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:790
#22: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:885
#23: CBitrixComponentTemplate->IncludeTemplate(array)
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:775
#24: CBitrixComponent->showComponentTemplate()
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:716
#25: CBitrixComponent->includeComponentTemplate(string, string)
   /home/bitrix/www/bitrix/components/bitrix/socialnetwork_group/component.php:1215
#26: include(string)
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:607
#27: CBitrixComponent->__includeComponent()
   /home/bitrix/www/bitrix/modules/main/classes/general/component.php:684
#28: CBitrixComponent->includeComponent(string, array, NULL, boolean)
   /home/bitrix/www/bitrix/modules/main/classes/general/main.php:1072
#29: CAllMain->IncludeComponent(string, string, array)
   /home/bitrix/www/workgroups/index.php:160
#30: include_once(string)
   /home/bitrix/www/bitrix/modules/main/include/urlrewrite.php:160
#31: include_once(string)
   /home/bitrix/www/bitrix/urlrewrite.php:2
----------
 

Пользователь 5224375

Заглянувший

Сообщений: 3
Регистрация: 29.04.2021

#2

23.06.2022 11:25:40

Та же самая проблема, перестали работать гриппы и проекты, причем если локализацию изменить на [ru] с [ua] все работает:

Код
2022-06-23 11:04:52 - Host: host.ru:443 - UNCAUGHT_EXCEPTION - [BitrixMainArgumentException]
JSON error: Malformed UTF-8 characters, possibly incorrectly encoded [5] (100)
/home/bitrix/www/bitrix/modules/main/lib/web/json.php:160
#0: BitrixMainWebJson::throwException(string)
        /home/bitrix/www/bitrix/modules/main/lib/web/json.php:147
#1: BitrixMainWebJson::checkException(integer)
        /home/bitrix/www/bitrix/modules/main/lib/web/json.php:37
#2: BitrixMainWebJson::encode(array)
        /home/bitrix/www/bitrix/components/bitrix/main.interface.buttons/templates/.default/template.php:89
#3: include(string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:790
#4: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:885
#5: CBitrixComponentTemplate->IncludeTemplate(array)
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:775
#6: CBitrixComponent->showComponentTemplate()
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:716
#7: CBitrixComponent->includeComponentTemplate()
        /home/bitrix/www/bitrix/components/bitrix/main.interface.buttons/class.php:789
#8: CMainInterfaceButtons->executeComponent()
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:660
#9: CBitrixComponent->includeComponent(string, array, NULL, boolean)
        /home/bitrix/www/bitrix/modules/main/classes/general/main.php:1072
#10: CAllMain->IncludeComponent(string, string, array)
        /home/bitrix/www/bitrix/templates/bitrix24/components/bitrix/socialnetwork.group_menu/.default/template.php:451
#11: include(string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:790
#12: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:885
#13: CBitrixComponentTemplate->IncludeTemplate(array)
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:775
#14: CBitrixComponent->showComponentTemplate()
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:716
#15: CBitrixComponent->includeComponentTemplate()
        /home/bitrix/www/bitrix/components/bitrix/socialnetwork.group_menu/component.php:354
#16: include(string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:607
#17: CBitrixComponent->__includeComponent()
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:684
#18: CBitrixComponent->includeComponent(string, array, object, boolean)
        /home/bitrix/www/bitrix/modules/main/classes/general/main.php:1072
#19: CAllMain->IncludeComponent(string, string, array, object, array)
        /home/bitrix/www/bitrix/components/bitrix/socialnetwork_group/templates/.default/util_group_menu.php:52
#20: include(string)
        /home/bitrix/www/bitrix/components/bitrix/socialnetwork_group/templates/.default/group.php:99
#21: include(string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:790
#22: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component_template.php:885
#23: CBitrixComponentTemplate->IncludeTemplate(array)
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:775
#24: CBitrixComponent->showComponentTemplate()
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:716
#25: CBitrixComponent->includeComponentTemplate(string, string)
        /home/bitrix/www/bitrix/components/bitrix/socialnetwork_group/component.php:1215
#26: include(string)
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:607
#27: CBitrixComponent->__includeComponent()
        /home/bitrix/www/bitrix/modules/main/classes/general/component.php:684
#28: CBitrixComponent->includeComponent(string, array, NULL, boolean)
        /home/bitrix/www/bitrix/modules/main/classes/general/main.php:1072
#29: CAllMain->IncludeComponent(string, string, array)
        /home/bitrix/www/workgroups/index.php:136
#30: include_once(string)
        /home/bitrix/www/bitrix/modules/main/include/urlrewrite.php:160
#31: include_once(string)
        /home/bitrix/www/bitrix/urlrewrite.php:2

———-

 

Пользователь 4490686

Заглянувший

Сообщений: 3
Регистрация: 04.08.2020

#3

05.07.2022 10:29:51

Та же проблема с кодировкой.

Код
1 Object { message: "[Bitrix\Main\ArgumentException] n

JSON error: Malformed UTF-8 characters, possibly incorrectly encoded [5] (100)n

/home/bitrix/www/bitrix/modules/main/lib/web/json.php:160n

#0: Bitrix\Main\Web\Json::throwException(string)n

t/home/bitrix/www/bitrix/modules/main/lib/web/json.php:147n

#1: Bitrix\Main\Web\Json::checkException(integer)n

t/home/bitrix/www/bitrix/modules/main/lib/web/json.php:37n

#2: Bitrix\Main\Web\Json::encode(array, integer)n

t/home/bitrix/www/bitrix/modules/main/lib/engine/respo…main/lib/httpapplication.php:166n

#8: Bitrix\Main\HttpApplication->finalizeControllerResult(object, array, object)n

t/home/bitrix/www/bitrix/modules/main/lib/httpapplication.php:155n

#9: Bitrix\Main\HttpApplication->runController(object, string)n

t/home/bitrix/www/bitrix/modules/main/lib/httpapplication.php:113n

#10: Bitrix\Main\HttpApplication->run()n

t/home/bitrix/www/bitrix/modules/main/services/ajax.php:29n

Как решить? (она появилась после обновления bitrix)

 

Пользователь 4490686

Заглянувший

Сообщений: 3
Регистрация: 04.08.2020

#4

05.07.2022 14:10:04

Проблема с кодировкой . Бывает появляется после обновления сайта.
Чтобы исправить, нужно преобразовать с помощью скрипта в верную кодировку.

https://www.1c-bitrix.ru/download/files/scripts/convert_utf8.php

(если сайт на utf8 был) .
Пример инструкции как делать.

https://dev.1c-bitrix.ru/community/blogs/howto/1466.php

Я ранее задавал тот же вопрос. Я хотел бы расшифровать JSON из: http://pad.skyozora.com/data/pets.json. Ниже приведен код, который я использовал ранее:

<?php
$html=file_get_contents("http://pad.skyozora.com/data/pets.json");
var_dump(json_decode($html,true)); //return null
var_dump(json_last_error()); // return 4
?>

Из последнего ответа, который я знаю, в возвращении json есть UTF8 DOM. Я попытался ответить на аналогичный вопрос: json_decode возвращает NULL после вызова веб-сервиса, но все ответы не работают для меня.

И после дальнейших исследований я нашел способ, который работает:

<?php
$html=file_get_contents("http://pad.skyozora.com/data/pets.json");
$html=preg_replace('/[x00-x1Fx80-xFF]/', '', $html);
var_dump(json_decode($html, true));
var_dump(json_last_error());
?>

Это успешно декодирует JSON в массив. Однако все китайские и японские символьные строки тоже были удалены. Есть идеи?

Отредактировано:

я использовал http://jsonlint.com/ расшифровать JSON из http://pad.skyozora.com/data/pets.json. Здесь останавливаются:

[
161,
"進化的紅面具",
0,
-1,
0,
-1,
1,
1,
10,
50,
1,
0,
0,
0,
0,
[

],
[
0,
0,
0,
0,
0,
0,
0
],
"http://i.imgur.com/Y1jZlGW.png",
[
"ウルカヌ火山",
"メジェド

и дай мне ошибку:

Parse error on line 5001:
...山",                "メジェド
----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

Но я не мог видеть никаких проблем с этой частью JSON.

5

Решение

Код ошибки возврата 4 связан с JSON_ERROR_SYNTAX Вы должны попытаться исправить свой JSON.

Если вы перейдете по ссылке в браузере, вы можете увидеть это сообщение:

bad character in string literal at line 1 column 294388

5

Другие решения

Других решений пока нет …

На чтение 4 мин. Опубликовано 15.12.2019

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Содержание

  1. Решение
  2. Другие решения
  3. Описание
  4. Список параметров
  5. Возвращаемые значения
  6. Примеры
  7. Смотрите также

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка PHP 5.3.3
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении PHP 5.5.0
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано PHP 7.0.0
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован PHP 7.0.0

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = «<‘Organization’: ‘PHP Documentation Team’>» ;

foreach ( $json as $string ) <
echo ‘Декодируем: ‘ . $string ;
json_decode ( $string );

switch ( json_last_error ()) <
case JSON_ERROR_NONE :
echo ‘ — Ошибок нет’ ;
break;
case JSON_ERROR_DEPTH :
echo ‘ — Достигнута максимальная глубина стека’ ;
break;
case JSON_ERROR_STATE_MISMATCH :
echo ‘ — Некорректные разряды или несоответствие режимов’ ;
break;
case JSON_ERROR_CTRL_CHAR :
echo ‘ — Некорректный управляющий символ’ ;
break;
case JSON_ERROR_SYNTAX :
echo ‘ — Синтаксическая ошибка, некорректный JSON’ ;
break;
case JSON_ERROR_UTF8 :
echo ‘ — Некорректные символы UTF-8, возможно неверно закодирован’ ;
break;
default:
echo ‘ — Неизвестная ошибка’ ;
break;
>

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

I had previously asked the same question. I would like to decode the json from: http://pad.skyozora.com/data/pets.json. Below is the code I used previously:

From the last answer I know there is UTF8 DOM in the json return. I tried the answer from a similar question: json_decode returns NULL after webservice call, but all of the answers not work for me.

And after do more research I found a way that works:

This successfully decode the json into array. However all Chinese and Japanese character string were removed too. Any ideas?

Edited:

and give me the error:

But I couldn’t see any problem with this part of json.

Дмитрий-Кузнецов

такой ошибкой?
json error syntax error 4 — в чём обычно ошибка заключалась?
на битре лучше BitrixMainWebJson::decode пользоваться?

russian

software

it

bitrix

14:51 06.12.2022


2

ответов

посмотри руками на выхлоп.
скорее всего что-то не то в ответе.

15:09 06.12.2022


Илья Петровский

посмотри руками на выхлоп.
скорее всего что-то не…

Угу, там прикол, что на бете работает, а на проде нет, а ко второму доступов нет, да и проверять на проде дело такое

15:10 06.12.2022

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

  • #2.951

Подскажите, реально ли на null bitrix24 запустить Сайты? Пишет про лицензию?

Сложновато. На выходе — простой лендец.

Подробнее. Поступил прОще- взял редакцию Старт, ее проапдейтил нормальным ключом. Установил Сайты (где-то была инструкция по корректной установке Сайтов, могу скинуть ссылку)

На выходе — убедился — простой лендинг с переотложенными функциями вывода.

Перспектива у Сайтов? Мое мнение — добавить реактивности BX.Vue.

  • #2.952

Подскажите, как можно отредактировать список городов, которые есть убрать и поставить свои, первый Ставрополь ну и другие, также списком сайт

, по мануалам бирикса, так и не понял ничего

  • #2.953

Я придумал следующее рабочее решение:

не помогло
Я заменил в трех местах

Потом закомментил вообще весь блок

Все равно возвращается значение «12»
Видимо еще в каком-то скрипте есть обработка ((
И да, кеш удалял полностью…

Последнее редактирование: 15 Янв 2020

  • #2.954

Доброго времени суток. С битриксом совсем недавно.
Сверстал шаблон, подключил, и через битрикс теперь bootstrap перебивает мои стили.
Да, есть селектор !important, для повышения приоритета стиля, но стилей тыща и перебирать их все чтобы добавить !important только туда куда нужно это боль.
Я тупо добавил этот селектор абсолютно ко всем правилам. Профит, всё отлично, но..
1. Допустимо ли это, если нет то почему?
2. Как всё таки без этого селектора подключать, чтобы мои стили были в приоритете?

Стили и скрипты подключил так

Для просмотра ссылки Войди или Зарегистрируйся

Последнее редактирование: 19 Янв 2020

  • #2.955

Доброго времени суток. С битриксом совсем недавно.
Сверстал шаблон, подключил, и через битрикс теперь bootstrap перебивает мои стили.
Да, есть селектор !important, для повышения приоритета стиля, но стилей тыща и перебирать их все чтобы добавить !important только туда куда нужно это боль.
Я тупо добавил этот селектор абсолютно ко всем правилам. Профит, всё отлично, но..
1. Допустимо ли это, если нет то почему?
2. Как всё таки без этого селектора подключать, чтобы мои стили были в приоритете?

Стили и скрипты подключил так

Для просмотра ссылки Войди или Зарегистрируйся

Типа так должно быть все:

Код:

<?
use BitrixMainPageAsset;
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
    die();
/**
* @var CUser $USER
* @var CMain $APPLICATION
*/
$asset = Asset::getInstance();
?><!DOCTYPE html>
<html lang="<?=LANGUAGE_ID?>">
<head>
    <meta charset="<?=SITE_CHARSET?>">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title><? $APPLICATION->ShowTitle() ?></title>
    <?
    //Тут мета-теги
    $APPLICATION->ShowMeta("robots", false, false);
    $APPLICATION->ShowMeta("keywords", false, false);
    $APPLICATION->ShowMeta("description", false, false);
    ?>
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <?
    //Тут канонический url
    $APPLICATION->ShowLink("canonical", null, false);
    //Тут стили шаблона сайта
    $asset->addCss(SITE_TEMPLATE_PATH . '/css/bootstrap.min.css');
    //Тут выводим стили
    $APPLICATION->ShowCSS(true, false);
    //Тут скрипты
    $asset->addJs(SITE_TEMPLATE_PATH . '/js/jquery-3.2.1_min.js');
    $asset->addJs(SITE_TEMPLATE_PATH . '/js/popper.min.js');
    $asset->addJs(SITE_TEMPLATE_PATH . '/js/bootstrap.min.js');
    $asset->addJs(SITE_TEMPLATE_PATH . '/js/fn.js');
    //Тут выводим скрипты
    $APPLICATION->ShowHeadStrings();
    $APPLICATION->ShowHeadScripts();
    ?>
</head>
<body>
<?$APPLICATION->ShowPanel() ?>
<!--HTML CONTENT-->
</body>
</html>

  • #2.956

А если bootstrap.min.css и bootstrap.min.js по cdn?
Или это совершенно ни к чему, и ничего хорошего это не даст?

Последнее редактирование: 20 Янв 2020

  • #2.957

А если bootstrap.min.css и bootstrap.min.js по cdn?
Или это совершенно ни к чему, и ничего хорошего это не даст?

Вам ничего не поможет, пока Вы не поймете принцип работы шаблона битрикс!
Все стили шаблона должны лежать тут template_styles.css, и этот файл подключается автоматически ($APPLICATION->ShowCSS(true, false);), все остальное должно быть подключено как выше я дал пример.
Прикрепляю чистый шаблон, с которого можно начать верстку.
а сам бутстрап есть в ядре, подключается он так: $this->addExternalCss(‘/bitrix/css/main/bootstrap.css’);, так же учитывать нужно что бутстрап используют шаблоны компонентов, и так же там он подключается из ядра. Во избежания двойного подключения, нужно чистить шаблоны компонентов от подключения, при условии что в header.php уже все подключено.

  • bxclear.zip

    78,2 KB

    · Просмотры: 6

Последнее редактирование: 20 Янв 2020

  • #2.958

Bitrix24 Бизнесс-процессы, форма: (утверждение документов) при запуске БП, в живой ленте автоматом ставит не следить, из за этого если пишут комментарии, уведомление не приходит, как сделать что бы он следил?

  • #2.959

Не удалось получить авторизацию: JSON error: Syntax error [4]
При регистрации такая ошибка, как решить?

  • 2020-02-04_8-56-26.jpg

    2020-02-04_8-56-26.jpg

    79,3 KB

    · Просмотры: 7

  • #2.960

Не удалось получить авторизацию: JSON error: Syntax error [4]
При регистрации такая ошибка, как решить?

Какая редакция и ревизия Битрикса?
Лицензия или нулл или демо?

json_decode возвращает JSON_ERROR_SYNTAX, но он-лайн форматировщик говорит, что JSON в порядке

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

Источник

json error syntax error 4

У меня очень странная проблема.

У меня есть веб-сервис JSON.

Но когда я загружаю свой JSON с этим кодом:

Я получил ошибку: SYNTAX ERROR

ЧТО НЕ ПОМОГАЕТ ПОЛНОЙ ВСЕ.

(но мне пока не удалось установить PHP 5.5, и я не уверен, что эта функция даст мне больше деталей)

Решение

Я столкнулся с той же проблемой, на самом деле есть некоторые скрытые символы, невидимые, и вам нужно удалить его.
Вот глобальный код, который работает во многих случаях:

Другие решения

Удаление BOM (Byte Order Mark) часто является решением, которое вам нужно:

У вас не должно быть спецификации, но если она есть, она невидима, поэтому вы ее не увидите !!

использование BOM Cleaner если у вас есть много файлов, чтобы исправить.

Я решил эту проблему, добавив stripslashes в строку, перед json_decode.

Чтобы собрать все вместе, я подготовил JSON-оболочку с расшифровкой автокорректирующих действий. Самую последнюю версию можно найти в моем GitHub Gist .

Вы не показывали свой JSON, но это похоже на то, что это может быть неверная последовательность UTF-8 в аргументе, большинство онлайн-валидаторов не поймают его.
убедитесь, что ваши данные UTF-8, а также проверьте, есть ли у вас иностранные символы.
Вам не нужен PHP5, чтобы увидеть вашу ошибку, используйте журнал ошибок() регистрировать проблемы.

Попробовав все решение без результата, это сработало для меня.

Надеюсь, это поможет кому-то

У меня была такая же проблема. Для меня это было вызвано echo »

В начале файла я объявил тег разрыва строки … Так что это была ошибка для меня. Удалив этот тег разрыва строки, я смог […]

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка PHP 5.3.3
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении PHP 5.5.0
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано PHP 7.0.0
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован PHP 7.0.0

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = « » ;

foreach ( $json as $string )

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

I had previously asked the same question. I would like to decode the json from: http://pad.skyozora.com/data/pets.json. Below is the code I used previously:

From the last answer I know there is UTF8 DOM in the json return. I tried the answer from a similar question: json_decode returns NULL after webservice call, but all of the answers not work for me.

And after do more research I found a way that works:

This successfully decode the json into array. However all Chinese and Japanese character string were removed too. Any ideas?

Edited:

and give me the error:

But I couldn’t see any problem with this part of json.

Источник

Bitrix: JSON error: Syntax error

При настройке сайта, пункт «Рабочий стол — Маркетинг — Поисковая оптимизация — Поисковые системы — Яндекс» при попытке авторизоваться через Яндекс и вводе полученного от Яндекс кода подтверждения получаю «Не удалось получить авторизацию: JSON error: Syntax error [4]». Причем данная ошибка видна только в Mozilla Firefox, в других браузерах просто не происходит авторизации. Битрикс установлен в виртуальной машине от разработчика (Bitrix virtual appliance version 7.4.3).

Обратился в ТП битрикса, неделю переписывался, попросили доступы не только в админку сайта но и доступы к аккаунту Яндекса (зачем?). После недельной переписки с ТП выяснилось, что есть проблема с подключением к сайту именно Яндекса.

Проверить проблему подключения к «oauth.yandex.ru» можно кодом:

$res = stream_socket_client(«ssl://oauth.yandex.ru:443», $errno, $errstr, 5);
var_dump($res);

И проблема была из-за того, что виртуалка была создана на CentOS 6.10, в которой для корректной работы с сервисами Яндекса необходимо принудительно обновить CA.

Делается следующим образом:

На всякий случай скопировали текущие CA (могут быть по другому пути):

cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem tls-ca-bundle.pem

Скачали новые и обновили CA.

curl https://www.certum.pl/CA.pem > /etc/pki/ca-trust/source/anchors/certum_pl_CA.pem
update-ca-trust extract

После этого вышеприведенный код перестал выдавать ошибку при подключении к сайту Яндекса.

Источник

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Возвращает последнюю ошибку

Описание

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON

Константа Значение Доступность
JSON_ERROR_NONE Ошибок нет
JSON_ERROR_DEPTH Достигнута максимальная глубина стека
JSON_ERROR_STATE_MISMATCH Неверный или некорректный JSON
JSON_ERROR_CTRL_CHAR Ошибка управляющего символа, возможно неверная кодировка
JSON_ERROR_SYNTAX Синтаксическая ошибка
JSON_ERROR_UTF8 Некорректные символы UTF-8, возможно неверная кодировка
JSON_ERROR_RECURSION Одна или несколько зацикленных ссылок в кодируемом значении
JSON_ERROR_INF_OR_NAN Одно или несколько значений NAN или INF в кодируемом значении
JSON_ERROR_UNSUPPORTED_TYPE Передано значение с неподдерживаемым типом
JSON_ERROR_INVALID_PROPERTY_NAME Имя свойства не может быть закодировано
JSON_ERROR_UTF16 Некорректный символ UTF-16, возможно некорректно закодирован

Примеры

Пример #1 Пример использования json_last_error()

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ‘ вместо »
$json [] = «<‘Organization’: ‘PHP Documentation Team’>» ;

foreach ( $json as $string ) <
echo ‘Декодируем: ‘ . $string ;
json_decode ( $string );

switch ( json_last_error ()) <
case JSON_ERROR_NONE :
echo ‘ — Ошибок нет’ ;
break;
case JSON_ERROR_DEPTH :
echo ‘ — Достигнута максимальная глубина стека’ ;
break;
case JSON_ERROR_STATE_MISMATCH :
echo ‘ — Некорректные разряды или несоответствие режимов’ ;
break;
case JSON_ERROR_CTRL_CHAR :
echo ‘ — Некорректный управляющий символ’ ;
break;
case JSON_ERROR_SYNTAX :
echo ‘ — Синтаксическая ошибка, некорректный JSON’ ;
break;
case JSON_ERROR_UTF8 :
echo ‘ — Некорректные символы UTF-8, возможно неверно закодирован’ ;
break;
default:
echo ‘ — Неизвестная ошибка’ ;
break;
>

Результат выполнения данного примера:

Пример #2 Совместное использование json_last_error() и json_encode()

// Некорректная последовательность UTF8
$text = «xB1x31» ;

$json = json_encode ( $text );
$error = json_last_error ();

var_dump ( $json , $error === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode ( «xB1x31» );

// Не вызовет ошибки JSON
json_encode ( ‘okay’ , JSON_THROW_ON_ERROR );

// Глобальное состояние не будет изменено json_encode()
var_dump ( json_last_error () === JSON_ERROR_UTF8 );
?>

Результат выполнения данного примера:

Смотрите также

  • json_last_error_msg() — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() — Декодирует строку JSON
  • json_encode() — Возвращает JSON-представление данных

Источник

json_decode returns JSON_ERROR_SYNTAX but online formatter says the JSON is OK [duplicate]

I got a very strange problem.

I have a JSON webservice.

Everything is OK.

But when i load my JSON with this code :

I got the error : SYNTAX ERROR

WHICH IS NOT HELP FULL AT ALL.

It is a nightmare.

(but i did not succeed to install PHP 5.5 yet, and i m not sure this function will give me more detail)

17 Answers 17

I faced the same issue, actually there are some hidden characters unseen and you need to remove it. Here’s a global code that works for many cases:

Removing the BOM (Byte Order Mark) is often-times the solution you need:

You shouldn’t have a BOM, but if it’s there, it is invisible so you won’t see it!!

use BOM Cleaner if you have lot’s of files to fix.

I solved this issue adding stripslashes to the string, before json_decode.

To put all things together here and there, I’ve prepared JSON wrapper with decoding auto corrective actions. Most recent version can be found in my GitHub Gist.

json_decode(html_entity_decode($json_string));

After trying all the solution without the result this is the one worked for me.

Hope it will help someone

I have the same problem, receiving JSON_ERROR_CTRL_CHAR and JSON_ERROR_SYNTAX.
This is my fix.

You haven’t show your JSON but this sound like it could be an Invalid UTF-8 sequence in argument, most online validator wont catch it. make sure your data is UTF-8 and also check if you have foreign characters. You don’t need PHP5 to see your error, use error_log() to log the problems.

I had the same issues. I took the following steps:

changed the JSON text encoding

I then viewed the plain text before decoding. I found crazy symbols like

then I just stripped it off

and I successfully decoded my JSON

please first clean json data and then load.

A JSON string must be double-quoted, the JSON isn’t valid because you don’t need to escape ‘ character.

The ‘ is not in the list.

See this list of special character used in JSON:

Check out this site for more documentation.

I faced this issue as well and it was so frustrating for me. after hours of trying different solutions on the internet. I noticed that the encoding of the file is in UTF-8 with BOM as var_dump() was echoing a weird character  before the JSON.

I converted the sample.json file I was working with from UTF-8 with BOM to UTF-8 . In VS CODE add the below to your settings.json or make sure the below settings code is as seen below (so that any file you create will be encoded in UTF-8 by default;

Then you’ll see something like the below screenshot on your VSCode toolbar. (For json_decode() to work, the file has to be encoded in UTF-8)

But in my case, the JSON file I created was having a UTF-8 with BOM encoding which is why when I was doing json_decode($json, true) it was returning null (Syntax Error when I var_dump(json_last_error_msg()) )

  1. Click on the UTF-8 with BOM, then you will get the dropdown,
  2. Click Save with Encoding,
  3. You should get the below screenshot, then you click on UTF-8.

That will resave your file with UTF-8 encoding and you can go ahead and check your code. json_decode() will work fine. Can’t believe I spent hours trying to figure out what could be wrong.

Источник

Понравилась статья? Поделить с друзьями:
  • Bitrix entity error
  • Bitrix element update error
  • Bitrix element add error
  • Bitrix db last error
  • Bitrix controller error