當(dāng)前,隨著前后端分離的趨勢(shì),json數(shù)據(jù)的操作變得越來(lái)越重要。在php中,處理json數(shù)據(jù)也變得十分簡(jiǎn)單,我們不僅可以解析json,還可以對(duì)其進(jìn)行修改等操作。在本文中,我們將重點(diǎn)介紹php json數(shù)據(jù)添加的方法,為php開(kāi)發(fā)者提供幫助。
以一個(gè)例子來(lái)說(shuō)明,在一個(gè)新的json文件中添加一組數(shù)據(jù),例如添加一組學(xué)生信息:
{ "class": "三年級(jí)二班", "students": [ { "name": "張三", "score": 95 }, { "name": "李四", "score": 87 } ] }
現(xiàn)在,我們需要添加一個(gè)學(xué)生成績(jī)更高的學(xué)生信息,“王五”,成績(jī)“98”。在php中,首先我們應(yīng)該讀取該json文件中的數(shù)據(jù),然后對(duì)其進(jìn)行添加。代碼如下:
$file = 'data.json'; $data = file_get_contents($file); $json = json_decode($data, true); $json['students'][] = array('name' =>'王五', 'score' =>98); $new_data = json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); file_put_contents($file, $new_data);
解釋一下上面的代碼內(nèi)容,首先我們通過(guò)“file_get_contents”讀取json文件中的數(shù)據(jù),然后使用“json_decode”將其轉(zhuǎn)換成php數(shù)組。接著,我們使用數(shù)組的方式添加一個(gè)新的數(shù)據(jù),通過(guò)“json_encode”將數(shù)組轉(zhuǎn)換成json格式的字符串,并使用“file_put_contents”將該字符串寫(xiě)入到原json文件中。
此時(shí),查看該json文件,可以看到新增的學(xué)生信息已成功添加。
{ "class": "三年級(jí)二班", "students": [ { "name": "張三", "score": 95 }, { "name": "李四", "score": 87 }, { "name": "王五", "score": 98 } ] }
除了以上的添加方式,還有其他多種添加json數(shù)據(jù)的方法,下面將會(huì)列舉幾個(gè)比較常用的方法。
1.通過(guò)修改數(shù)組方式添加數(shù)據(jù)。如下:
$data_arr = json_decode($data, true); $data_arr['students'][] = array('name' =>'王五', 'score' =>98); $new_data = json_encode($data_arr);
2.通過(guò)對(duì)象方式添加數(shù)據(jù),在json字符串轉(zhuǎn)化為對(duì)象后,直接對(duì)其進(jìn)行屬性的新增。如下:
$obj = json_decode($json, false); $obj->students[] = array('name' =>'王五', 'score' =>98); $new_json = json_encode($obj);
3.通過(guò)“array_push”函數(shù)向json數(shù)組中添加數(shù)據(jù),如下:
$json = json_decode($data, true); array_push($json['students'], array('name' =>'王五', 'score' =>98)); $new_data = json_encode($json);
總結(jié):
在php中操作json數(shù)據(jù)是一個(gè)十分常見(jiàn)的操作,本文主要介紹了json數(shù)據(jù)添加的方法,并且對(duì)于三種常用的添加方式進(jìn)行了介紹,希望對(duì)php開(kāi)發(fā)者有所幫助。