亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

json 編碼和解碼在 PHP 中不起作用

json 編碼和解碼在 PHP 中不起作用

PHP
縹緲止盈 2023-08-19 10:27:19
我有一個對象,我必須轉換為數組,我使用了 json 編碼和 json 解碼,但它無法正常工作。我的對象$LearningNodesData = '{        0:"5df31",        1:"5df32",        2:"5df33"    }';我的代碼    $LearningNodesData1 =json_decode(json_encode($LearningNodesData,true),true);echo "<pre>";print_r($LearningNodesData1);我的預期輸出[  "5df31",  "5df32",  "5df33"]我的輸出{    0:"5df1",    1:"5df2",    2:"5df3"}這里出了什么問題更新了代碼部分<?php$LearningNodesData = '{    "0":"5df31",    "1":"5df32",    "2":"5df33"}';echo my_json_decode($LearningNodesData);function my_json_decode($s) {    $s = str_replace(        array('"',  "'"),        array('\"', '"'),        $s    );    $s = preg_replace('/(\w+):/i', '"\1":', $s);    return json_decode(sprintf('{%s}', $s));}?>
查看完整描述

4 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您的字符串不是有效的 json。


有效的 json 是:


$LearningNodesData = '{

? ? "0":"5df31",

? ? "1":"5df32",

? ? "2":"5df33"

}';


查看完整回答
反對 回復 2023-08-19
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您正在嘗試對字典進行編碼/解碼,并且您的預期結果是一個列表。如果您想要的結果是一個列表,那么試試這個!

$LearningNodesData = '["5df31","5df32","5df33"]';

不是這個

$LearningNodesData = '{
    0:"5df31",
    1:"5df32",
    2:"5df33"
}';


查看完整回答
反對 回復 2023-08-19
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

如果將對象轉換為數組,它將始終返回帶有鍵的值


    $LearningNodesData = '{

    "0":"5df31",

    "1":"5df32",

    "2":"5df33"

    }';

   $arr = json_decode($LearningNodesData,true);

   print_r($arr);

  //output

  Array

  (

    [0] => 5df31

    [1] => 5df32

    [2] => 5df33

  )

在最后的數組中,沒有鍵或有鍵并不重要(如果它是數字鍵)。您所需的輸出沒有密鑰,但您將通過它們的索引位置進行訪問。


如果您不想將其作為數組,可以使用imploade()函數將其轉換為逗號格式的字符串


echo imploade(',',$arr); //5df31,5df32,5df33


查看完整回答
反對 回復 2023-08-19
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

如果我理解的話,你想回顯/打印數組,但沒有鍵?如果是這樣:


<?php

$learningNodesData = '{

    "0":"5df31",

    "1":"5df32",

    "2":"5df33"

}';


$decodedLearningNodesData = json_decode($learningNodesData, true);


$noKeysLearningNodesData = json_encode(array_values($decodedLearningNodesData));

print_r($noKeysLearningNodesData);


?>

將打印出:


["5df31","5df32","5df33"]


查看完整回答
反對 回復 2023-08-19
  • 4 回答
  • 0 關注
  • 211 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號