任務目標:將下列陣列物件,轉化成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 ...