我的问题与大多数人有点不同,我基本上想与Haluk的this question做相反的事。
所以我有一个JSON字符串:
{
"main":
{
"title": "QuickPub",
"defaultRole": "BU"
},
"roles":
{
"TU":
{
"name": "testUser",
"code": "TU"
}
}
}
我希望能够从中生成包含php数组定义的字符串:
<?php
return [
"main" =>
[
"title" => "QuickPub",
"defaultRole" => "BU"
],
"roles" =>
[
"TU" =>
[
"name" => "testUser",
"code" => "TU"
]
]
];
?>
编辑:
我已经尝试了json_decode()
但是这会生成一个变量,我需要一个字符串,我可以放在一个php文件中,它将重现这个而不使用php_decode。
答案 0 :(得分:1)
我认为这可以解决您的问题。首先使用json_decode将您的json字符串转换为数组($ string,1);然后使用print_r($ array,1)将该数组转换为字符串表示形式;这将以数组字符串表示形式返回结果。
例如:
$json='{}' // its a demo
$array= json_decode($json,1); // an array
$result = print_r($array,1);
echo $result;
答案 1 :(得分:0)
这是对Being Sunny的回答的改编,但是使用var_export()
函数而不是print_r。
如phihad所述here
var_export打印有效的php代码。如果您计算了一些值并希望结果在另一个脚本中作为常量
,则非常有用
脚本:
$json = '{"main":{"title": "QuickPub","defaultRole": "BU"},"roles":{"TU":{"name": "testUser","code": "TU"}}}';
$array = json_decode($json, 1);
$result = var_export($array, 1);
echo $result;
产生
array(
'main' => array(
'title' => 'QuickPub',
'defaultRole' => 'BU',
),
'roles' => array(
'TU' => array(
'name' => 'testUser',
'code' => 'TU',
),
),
)
答案 2 :(得分:-1)
这可以使用以下代码实现:
{
这会将[
替换为}
,将]
替换为:
,将=>
替换为;
,替换最后的任何空格,追加一个ExtractTextPlugin
,并在返回声明之前。
这会在问题栏中生成请求打开和关闭php标记的输出。