2

我希望将以下字符串转换为 PHP 数组:

{ 'Codes': ['01239EEF', '01240EDF'], 'Done' : ['1', '0'] }

我正在尝试将其转换为如下所示的数组:

{[Codes] => {[0] => '01239EEF', [1] => '01240EDF'}, [Done] => {[0] => '1', [1] => '0'}}

我尝试使用json_decodewith Array 参数明确设置为true. 但它总是NULL出于某种原因返回。

4

3 回答 3

8

问题在于 json 使用"而不是'

 { 'Codes': ['01239EEF', '01240EDF'], 'Done' : ['1', '0'] }

一定是

 { "Codes": ["01239EEF", "01240EDF"], "Done" : ["1", "0"] }

输出与json_decode

 stdClass Object
(
   [Codes] => Array
    (
        [0] => 01239EEF
        [1] => 01240EDF
    )

    [Done] => Array
    (
        [0] => 1
        [1] => 0
    )

)
于 2013-04-15T07:09:06.250 回答
0

你可以使用str_replace(',",$string)然后json_encode

于 2013-04-15T07:14:33.553 回答
0

名称和值必须用双引号括起来

json_decode单引号在函数中无效

请更改您的字符串,例如

$js_str = '{ "Codes": ["01239EEF", "01240EDF"], "Done" : ["1", "0"] }';

你的输出会像

object(stdClass)#1 (2) {
   ["Codes"]=>
  array(2) {
    [0]=>
    string(8) "01239EEF"
    [1]=>
    string(8) "01240EDF"
  }
  ["Done"]=>
  array(2) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "0"
  }
}
于 2013-04-15T07:19:09.157 回答