为了账号安全,请及时绑定邮箱和手机立即绑定

需要在php中重命名json文件的所有Json键

需要在php中重命名json文件的所有Json键

PHP
小唯快跑啊 2022-07-09 18:19:45
我需要在 php.ini 中重命名 json 文件的所有键。Json 文件:construction.php{  "result": {    "UK": [      {        "name": "Leo Philips",        "age": "28",        "category": "Senior",        "place": "London",        "experience_yrs": "4"      },      {        "name": "Mc Roy",        "age": "25",        "category": "Junior",        "place": "London",        "experience_yrs": "1"      }    ],    "Europe": [      {        "name": "Reo Thomas",        "age": "31",        "category": "Senior",        "place": "Paris",        "experience_yrs": "6"      }    ]  }}我想重命名所有键“name”到 NA,“age”到 AG,“category”到 CA,“place”到 PL,“experience_yrs”到 EY需要在 fullconstruction.php 中进行以下输出{  "result": {    "UK": [      {        "NM": "Leo Philips",        "AG": "28",        "CA": "Senior",        "PL": "London",        "EY": "4"      },      {        "NM": "Mc Roy",        "AG": "25",        "CA": "Junior",        "PL": "London",        "EY": "1"      }    ],    "Europe": [      {        "NM": "Reo Thomas",        "AG": "31",        "CA": "Senior",        "PL": "Paris",        "EY": "6"      }    ]  }} 这是我在 fullconstruction.php 中使用的代码<?phpheader('Content-Type: application/json');$parsed = json_decode(file_get_contents("construction.php"), true);$result = [];if($parsed['Success']){    foreach($parsed['result'] as $val){        $result[] = [            "NM"=> $val['name'],            "AG"=> $val['age'],            "CA"=> $val['category'],            "PL"=> $val['place'],            "EY"=> $val['experience_yrs']         ];    }     // or what you want.}echo json_encode($result);?>得到空白 []。怎么做?
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

你的代码在我这边不起作用,


请尝试以下代码,它可以正常工作。


<?php

header('Content-Type: application/json');


$parsed = json_decode(file_get_contents("construction.php"), true);

$result = [];

if($parsed['result']){

    foreach($parsed['result'] as $key => $val){

       foreach($val as $final_val){

        $result[$key][] = [

            "NM"=> $final_val['name'],

            "AG"=> $final_val['age'],

            "CA"=> $final_val['category'],

            "PL"=> $final_val['place'],

            "EY"=> $final_val['experience_yrs']

         ];

        }

    }     // or what you want.


}

echo json_encode($result);

?>

输出


{"UK":[{"NM":"Leo Philips","AG":"28","CA":"Senior","PL":"London","EY":"4"},

{"NM":"Mc Roy","AG":"25","CA":"Junior","PL":"London","EY":"1"}],"Europe":

[{"NM":"Reo Thomas","AG":"31","CA":"Senior","PL":"Paris","EY":"6"}]}

希望这对你有用。


查看完整回答
反对 回复 2022-07-09
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你必须循环两次


使用下面的代码。


$json = '{

  "result": {

    "UK": [

      {

        "name": "Leo Philips",

        "age": "28",

        "category": "Senior",

        "place": "London",

        "experience_yrs": "4"

      },

      {

        "name": "Mc Roy",

        "age": "25",

        "category": "Junior",

        "place": "London",

        "experience_yrs": "1"

      }

    ],

    "Europe": [

      {

        "name": "Reo Thomas",

        "age": "31",

        "category": "Senior",

        "place": "Paris",

        "experience_yrs": "6"

      }

    ]

  }

}';


$parsed = json_decode($json, true);


//print_r($parsed);



foreach($parsed['result'] as $key => $val){


   if($parsed['result'][$key]){

       $subdata = $parsed['result'][$key];

       foreach($subdata as $k1 => $v1){


            $parsed['result'][$key][$k1] = [

                "NM"=> $v1['name'],

                "AG"=> $v1['age'],

                "CA"=> $v1['category'],

                "PL"=> $v1['place'],

                "EY"=> $v1['experience_yrs']

             ];



       }

   }


}


echo json_encode($parsed);

在这里你会得到


{

  "result": {

    "UK": [

      {

        "NM": "Leo Philips",

        "AG": "28",

        "CA": "Senior",

        "PL": "London",

        "EY": "4"

      },

      {

        "NM": "Mc Roy",

        "AG": "25",

        "CA": "Junior",

        "PL": "London",

        "EY": "1"

      }

    ],

    "Europe": [

      {

        "NM": "Reo Thomas",

        "AG": "31",

        "CA": "Senior",

        "PL": "Paris",

        "EY": "6"

      }

    ]

  }

}


查看完整回答
反对 回复 2022-07-09
  • 2 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信