簡體   English   中英

在PHP中解析解碼后的嵌套/混合JSON

[英]Parsing Decoded nested/mixed JSON in PHP

我正在嘗試解析完整的JSON結構。 我已經能夠獲得單個嵌套對象,但是我希望它比尋找每個嵌套結構要簡單得多。

這是我擁有的JSON結構:

{
"request1": {
    "nest11": "solution11",
    "nest12": "solution12"
},
"request2": {
    "nest21": "solution21",
    "nest22": "solution22"
},
"request3": true,
"request3": {
    "nest31": "solution31",
    "nest32": "solution31",
    "nestnest1": {
        "nestnest11": "nestsolution11",
        "nestnest12": "nestsolution12"
    },
    "nestrequest2": {
        "nestrequest21": [{
            "nestnest21": "solution21",
            "nestnest22": "solution22"
        }]
    },
    "request4": "solution4"
}
}

當我從API獲得響應時,假設$ serverResponse,我正在解碼以獲取對象

$newobj = json_decode($serverResponse);

foreach ($newobj->request1 as $key=>$value) {
  $request1 = "request1.".$key.": <b>". $value."</b><br/>";
  }

然后,我將其發送回前端進行打印。 問題是我該怎么做,這樣我就不必遍歷每個對象並獲得單個值。 我需要打印所有鍵值,無論是否嵌套。 感謝您的指導和幫助!

function recursivePrinter($data){
    foreach($data as $k=>$v){
        if(is_array($v)) recursivePrinter($v);
        else echo "$k - $v";
    }
}
recursivePrinter(json_decode($response, true));

function recursivePrinter($data, $nested=""){
    foreach($data as $k=>$v){
        if(is_array($v)){ recursivePrinter($v, $k); }
        else echo "$nested.$k - $v";
    }
}
recursivePrinter(json_decode($response, true));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM