2016-12-05 52 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有任何限制,或者TEXT SQL數據類型存在某種問題,因爲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

我想通了什麼導致了問題。數據庫中的一些編碼存在問題,因爲我有一些葡萄牙語特殊字符未正確轉換。