php陣列物件轉化成json格式

2021-08-19 21:59:49 字數 2558 閱讀 6220

任務目標:將下列陣列物件,轉化成json格式

tdclass object

([id] => 9e929826-5c81-11e5-a788-00163e000c27

[lawyername] => 郭俊亭

[lawfirm] => 新疆德新律師事務所

[region] => 喀什地區

[licenseareas] => array

([0] => stdclass object

([name] => 合同糾紛

[code] => 9

[score] => 50

[year] => 3

[count] => 12

[starlevel] => array

([0] => 2

[1] => 2

[2] => 2

[3] => 2

[4] => 2))

[1] => stdclass object

([name] => 財產損害

[code] => 7

[score] => 50

[year] => 3

[count] => 11

[starlevel] => array

([0] => 2

[1] => 2

[2] => 2

[3] => 2

[4] => 2))

[2] => stdclass object

([name] => 人身損害

[code] => 4

[score] => 45

[year] => 4

[count] => 4

[starlevel] => array

([0] => 2

[1] => 2

[2] => 2

[3] => 2

[4] => 1))

)[activetype] => 1

[courts] => array

([0] => stdclass object

([name] => 新疆克孜勒蘇柯爾克孜自治州阿圖什市人民法院

[code] => 3470

[count] => 1

)[1] => stdclass object

([name] => 新疆喀什地區中級人民法院

[code] => 3474

[count] => 14

)[2] => stdclass object

([name] => 新疆維吾爾自治區高階人民法院

[code] => 3413

[count] => 5))

[totaljudgementcount] => 38

[licensenumber] => 16531200410618832

[licenseyear] => -1

思路:讀檔案,存成字串。再將字串轉化成陣列。對陣列進行遍歷處理。

**:

<?php

/** * created by phpstorm.

* user: zq

* date: 2018/5/11

* time: 9:54

*/header("content-type:text/html;charset=utf-8");//處理亂碼

$str = file_get_contents('obj.txt');//將整個檔案內容讀入到乙個字串中

$arr = explode("\r\n", $str);//轉換成陣列

$string_key=" => ";

$stack = array();

//用棧實現括號匹配,如果row為)並且棧頂為1輸出},else]

foreach ($arr as &$row)

//[     if(strpos($row,"array") !==false)

//利用正規表示式,匹配陣列元素

if(preg_match("/\[[0-9]\]\s=>\s/",$row))

//一般元素處理

if(strpos($row,$string_key) !==false)

//出棧,右括號匹配

if(strpos($row,")") !==false)";

if(!empty($stack))

echo ",";

}if($pop==0)

}}unset($row);//釋放row

?>

知識點:

1.json格式的理解.

2.亂碼處理

3.棧實現括號匹配

4.strpos()函式:用來判斷字串是否包含另乙個字串

5.str_replace()函式:替換字串

6.正規表示式,以及正規表示式匹配與替換.

if(preg_match("/\[[0-9]\]\s=>\s/",$row))
匹配了[5] => 等

\s為空格

總結:起初對json格式理解不夠,浪費許多時間.通過應輸出json格式與原檔案對比,進行分析,會更加快速準確.

fastjson把物件轉化成json避免 ref

1.disablecircularreferencedetect來禁止迴圈引用檢測 2.json.tojsonstring serializerfeature.disablecircularreferencedetect 3.專案中遇到問題的源 查詢所有的訂單 3.引用是通過 ref 來表示的 引用...

list轉化成json(有待改進)

1 將bean轉換成jsonobject jsonobject 2 將單個的jsonobject放到json陣列裡面 jsonarray 3 生成 最後的json資料 如下 public void joblist catch exception ex jsonarray jsonarray new ...

類陣列轉化成陣列

什麼是類陣列呢?定義 具有長度的屬性,但是屬性是非負整數。它不具有陣列的一些方法,但是不意味著它不能使用陣列的方法。舉例 arguments 以及dom中.getelementbytagname 返回值為類陣列。類陣列轉化為陣列的方法 1.array.from 這是es6新增的特性之一 var a ...