簡體   English   中英

無法評估字符串數組

[英]Unable to eval a string array

如何將其更改為JSON數組? 即時通訊使用評估技術,但無法正常工作。 我從我們的upx服務器獲得了這種響應:

array(
    'invoice' => array(
        'id' => '4',
        'realid' => '4',
        'address_rev' => NULL,
        'relation_data_id' => '3',
        'contact_set_rev' => '3',
        'business_data_rev' => '4',
        'private_data_rev' => NULL,
        // etc..
    )
); 

var_dump($newdata); // String
eval("\$newdata = \"$newdata\";");
var_dump($newdata); // Still stays as a string as shown above....

有什么線索嗎?

泰已經!

當我告訴你這一點時,你會變得非常糟糕。

但是它仍然是字符串的原因是因為您將其包裝在對eval的調用中的"" ,並且當然將字母包裝在引號中會使它成為..( 鼓聲 ..)一個字符串。

 eval ('$newdata = ' . $newdata . ';'); // this will do what you want

如果您想立即將其轉換為json,請使用以下代碼:

 eval ('$newdata = json_encode (' . $newdata . ');');
var_dump($newdata); // String
eval("\$newdata = $newdata;");
var_dump($newdata); // Still stays as a string as shown above....
// eval("\$newdata = \"$newdata\";");
//                    ^         ^

刪除雙引號。 您只需將其放回字符串中...

盡管如上所述,但如果要傳輸PHP數組,則應使用serialize()

您可以嘗試php的json_encode 你可以試試

$json_array = json_encode($your_array);

這將為您提供json編碼的數組。 然后您可以在$ json_array上執行json_decode以取回原始內容

檢查您的php是否具有JSON擴展名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM