2016-12-05 5 views
-2

Привет, добрый вечер,Есть ли максимальная длина для поля JSON?

Я пишу простой сайт электронной коммерции PHP, и я наткнулся на проблему, выполняя часть администрирования. В настоящее время я пытаюсь сделать запрос AJAX, чтобы заполнить некоторые поля на загрузочном модальном и что я иду получить данные из базы данных:

function editProductResponse($productId) 
{ 
    require 'app/database/Database.php'; 
    require 'app/models/Product.php'; 
    require 'app/models/ProductImage.php'; 

    $product = new Product(); 
    $object = $product->getProduct($productId); 
    $data = $object[0]; 
    $array = [ 
     "id" => $data->id, 
     "name" => $data->name, 
     //"description" => $data->description, 
     "price" => $data->price, 
     "stock" => $data->stock, 
     "sold" => $data->sold, 
     "added" => $data->added, 
     "type" => $data->type, 
     "subtype" => $data->subtype, 
     "discount" => $data->discount 
    ]; 
    echo print_r($data); 
    echo json_encode($array); 
} 

Это моя ajax.php функции, которая получает, что фактические данные и это работает штраф (имей в виде комментируемую части массива не является ошибкой, я объясню, что приведенный ниже, и я делаю массив для целей отладки):

stdClass Object 
(
    [id] => 1 
    [name] => MSI Nightblade MI2-027XES Gaming 
    [description] => Forjado com a paix�o pelo jogo, o MSI Nightblade MI2 foi feito para aqueles que anseiam por uma experi�ncia de jogo imersiva. Com armazenamento em abund�ncia, refrigera��o eficiente e gr�ficos de alta qualidade, esta pequena m�quina gaming est� pronta para desbloquear a sua pr�xima aventura gaming. 
    [price] => 799 
    [stock] => 147 
    [sold] => 32 
    [added] => 2010-11-22 
    [type] => COMPUTER 
    [subtype] => DESKTOP 
    [discount] => 10 
) 
1{"id":1,"name":"MSI Nightblade MI2-027XES Gaming","price":799,"stock":147,"sold":32,"added":"2010-11-22","type":"COMPUTER","subtype":"DESKTOP","0":"discount => 10"} 

Это мой ответ в журнале браузера , Кажется, все работает нормально, и это так. Так что моя проблема - это когда я фактически раскомментирую часть описания из массива. Если бы я сделать это, я получаю это:

stdClass Object 
(
    [id] => 1 
    [name] => MSI Nightblade MI2-027XES Gaming 
    [description] => Forjado com a paix�o pelo jogo, o MSI Nightblade MI2 foi feito para aqueles que anseiam por uma experi�ncia de jogo imersiva. Com armazenamento em abund�ncia, refrigera��o eficiente e gr�ficos de alta qualidade, esta pequena m�quina gaming est� pronta para desbloquear a sua pr�xima aventura gaming. 
    [price] => 799 
    [stock] => 147 
    [sold] => 32 
    [added] => 2010-11-22 
    [type] => COMPUTER 
    [subtype] => DESKTOP 
    [discount] => 10 
) 
1 

Я оставил echo print_r, чтобы избежать путаницы на обоих результатов.

После того, как я получил этот ответ, мне стало интересно, существует ли какой-либо предел для JSON или есть какие-то проблемы с типом данных SQL TEXT, поскольку поле description имеет этот тип.

В соответствии с просьбой, это ответ отладки фактического массива:

Array 
(
    [id] => 1 
    [name] => MSI Nightblade MI2-027XES Gaming 
    [description] => Forjado com a paix�o pelo jogo, o MSI Nightblade MI2 foi feito para aqueles que anseiam por uma experi�ncia de jogo imersiva. Com armazenamento em abund�ncia, refrigera��o eficiente e gr�ficos de alta qualidade, esta pequena m�quina gaming est� pronta para desbloquear a sua pr�xima aventura gaming. 
    [price] => 799 
    [stock] => 147 
    [sold] => 32 
    [added] => 2010-11-22 
    [type] => COMPUTER 
    [subtype] => DESKTOP 
    [discount] => 10 
) 
1 
+0

так ... в чем проблема? недопустимые символы? Нет, нет ... предел того, насколько большой может быть строка json. по крайней мере, без ограничений, которые могут отличаться от максимальной длины строки. –

+0

проблема в том, что если я добавлю описание, то есть пустой ответ .. что я не могу понять, почему – EpaXapate

+0

распечатать массив –

ответ

0

Я понял, что вызывает проблему. Была проблема с некоторыми из моих кодировок в базе данных, так как у меня были некоторые специальные символы в португальском, которые не были правильно преобразованы.

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