鍍金池/ 問答/PHP  HTML/ 請問下這種數(shù)據(jù)是什么格式來著 有點像數(shù)組

請問下這種數(shù)據(jù)是什么格式來著 有點像數(shù)組

clipboard.png
再說明下 這個是socket.io 發(fā)送時的 數(shù)據(jù)

clipboard.png

= = 大伙沒發(fā)現(xiàn)前面有個42嗎

回答
編輯回答
喵小咪

1.它是字符串,名字叫json字符串

var_dump('["msg",{"rp":"ss"}]');//NewFile.php:6:string '["msg",{"rp":"ss"}]' (length=19)

不懂為什么很多人會把數(shù)組編碼后的json字符串數(shù)組畫上等號
為什么要json編碼,因為socket無法直接傳遞php數(shù)組,大多數(shù)sokcet消息傳遞用的是json字符串,有時候也可以直接傳遞二進(jìn)制。
為什么無法直接傳遞數(shù)組,因為不統(tǒng)一,php有php的數(shù)組,java有java的數(shù)組,而json是標(biāo)準(zhǔn)統(tǒng)一的

2.json解碼后它確實是數(shù)組
但是 @Euphoria 的代碼是錯誤的
請注意array[1],也是數(shù)組而不是 @Euphoria 的代碼里的json

print_r(json_decode('["msg",{"rp":"ss"}]',TRUE));
/*
Array
(
    [0] => msg
    [1] => Array
        (
            [rp] => ss
        )

)
*/

下面的才是正確的

$arr = ['msg',['rp'=>'ss']];
echo json_encode($arr);//["msg",{"rp":"ss"}]

ps:json解碼(json字符串)的array[1]不一定是數(shù)組,因為phpjson_decode不傳第二個參數(shù)返回的是object

var_dump(json_decode('["msg",{"rp":"ss"}]'));
/*
NewFile.php:6:
array (size=2)
  0 => string 'msg' (length=3)
  1 => 
    object(stdClass)[1]
      public 'rp' => string 'ss' (length=2)
*/
2018年1月19日 19:57
編輯回答
焚音

clipboard.png
其實就是這么個東西,這樣夠清晰了吧

2017年6月13日 18:42
編輯回答
做不到

上面回答都正確,就是數(shù)組!

再交樓主一個方法來判定類型:使用var_dump打印

2017年6月10日 00:53
編輯回答
澐染

不是像數(shù)組,就是數(shù)組。
長度為2的數(shù)組。元素1為字符串,元素2為json

2018年3月19日 12:56
編輯回答
舊城人

接口返回?json

2018年7月25日 23:26
編輯回答
吢涼

數(shù)組的每一項類型可以不相同

2017年2月6日 08:14
編輯回答
風(fēng)畔

是數(shù)組,你用[]括起來了.

2017年5月13日 16:42
編輯回答
汐顏

這種是json字符串json_decode之后是一個二維數(shù)組第一層是索引數(shù)組,第二層是關(guān)聯(lián)數(shù)組
后臺PHP索引數(shù)組json_encode后是[]這種形式 所謂前端的數(shù)組
關(guān)聯(lián)數(shù)據(jù)json_encode后是{}這種形式 所謂前端的對象

2018年7月10日 20:42