如何将 json 数据转换为下面提到的格式
How to convert the json data to the below mentioned format
下面给出的数据是xml数据转换过来的josn
{"tldlist":{"tld":[{"tld":"co.uk"},{"tld":"eu"},{"tld":"live"},{"tld":{}}],"tldcount":"4"},"Command":"GETTLDLIST","APIType":"API","Language":"eng","ErrCount":"0","ResponseCount":"0","MinPeriod":{},"MaxPeriod":"10","Server":"SJL1VWRESELL_T","Site":"eNom","IsLockable":{},"IsRealTimeTLD":{},"TimeDifference":"+0.00","ExecTime":"0.000","Done":"true","TrackingKey":"b3c16684-c533-4947-b40a-19a5b4c08a31","RequestDateTime":"5\/10\/2018 12:54:28 AM","debug":{}}
我需要将上面的数据转换成下面提到的格式:
array (
'tldlist' =>
array (
'tld' =>
array (
0 =>
array (
'tld' => 'co.uk',
),
1 =>
array (
'tld' => 'eu',
),
2 =>
array (
'tld' => 'live',
),
3 =>
array (
'tld' =>
array (
),
),
),
'tldcount' => '4',
),
'Command' => 'GETTLDLIST',
'APIType' => 'API',
'Language' => 'eng',
'ErrCount' => '0',
'ResponseCount' => '0',
'MinPeriod' =>
array (
),
'MaxPeriod' => '10',
'Server' => 'SJL1VWRESELL_T',
'Site' => 'eNom',
'IsLockable' =>
array (
),
'IsRealTimeTLD' =>
array (
),
'TimeDifference' => '+0.00',
'ExecTime' => '0.000',
'Done' => 'true',
'TrackingKey' => 'b3c16684-c533-4947-b40a-19a5b4c08a31',
'RequestDateTime' => '5/10/2018 12:54:28 AM',
'debug' =>
array (
),
)
找到我的控制器代码:
public function test(){
$response = file_get_contents('https://resellertest.enom.com/interface.asp?command=gettldlist&uid=resellid&pw=resellpw&responsetype=xml');
$data = simplexml_load_string($response);
$configdata = json_encode($data);
return view('clientlayout.main.test1', array('configdata' =>
$configdata ));
}
建议我获取上述 format.I 中的数据的解决方案需要 json 解码格式的数据 view.when 我在控制器中使用 json_decode 我出现错误 "htmlspecialchars() expects parameter 1 to be string, array given"。
我刚刚测试了代码并且它有效
$response = file_get_contents('https://resellertest.enom.com/interface.asp?command=gettldlist&uid=resellid&pw=resellpw&responsetype=xml');
$data = simplexml_load_string($response);
$configdata = json_encode($data);
$final_data = json_decode($configdata,true);// Use true to get data in array rather than object
echo "<pre>";print_r($final_data);exit;
下面是我得到的输出,
Array
(
[tldlist] => Array
(
[tld] => Array
(
[0] => Array
(
[tld] => co.uk
)
[1] => Array
(
[tld] => eu
)
[2] => Array
(
[tld] => live
)
[3] => Array
(
[tld] => Array
(
)
)
)
[tldcount] => 4
)
[Command] => GETTLDLIST
[APIType] => API
[Language] => eng
[ErrCount] => 0
[ResponseCount] => 0
[MinPeriod] => Array
(
)
[MaxPeriod] => 10
[Server] => SJL1VWRESELL_T
[Site] => eNom
[IsLockable] => Array
(
)
[IsRealTimeTLD] => Array
(
)
[TimeDifference] => +0.00
[ExecTime] => 0.000
[Done] => true
[TrackingKey] => 2b71ef9f-005e-4a33-a66f-3f1f69188f1f
[RequestDateTime] => 5/10/2018 4:11:02 AM
[debug] => Array
(
)
)
我想这就是您要找的
它会起作用。
$configdata = collect(json_decode(json_encode($data)))
->toArray();
下面给出的数据是xml数据转换过来的josn
{"tldlist":{"tld":[{"tld":"co.uk"},{"tld":"eu"},{"tld":"live"},{"tld":{}}],"tldcount":"4"},"Command":"GETTLDLIST","APIType":"API","Language":"eng","ErrCount":"0","ResponseCount":"0","MinPeriod":{},"MaxPeriod":"10","Server":"SJL1VWRESELL_T","Site":"eNom","IsLockable":{},"IsRealTimeTLD":{},"TimeDifference":"+0.00","ExecTime":"0.000","Done":"true","TrackingKey":"b3c16684-c533-4947-b40a-19a5b4c08a31","RequestDateTime":"5\/10\/2018 12:54:28 AM","debug":{}}
我需要将上面的数据转换成下面提到的格式:
array (
'tldlist' =>
array (
'tld' =>
array (
0 =>
array (
'tld' => 'co.uk',
),
1 =>
array (
'tld' => 'eu',
),
2 =>
array (
'tld' => 'live',
),
3 =>
array (
'tld' =>
array (
),
),
),
'tldcount' => '4',
),
'Command' => 'GETTLDLIST',
'APIType' => 'API',
'Language' => 'eng',
'ErrCount' => '0',
'ResponseCount' => '0',
'MinPeriod' =>
array (
),
'MaxPeriod' => '10',
'Server' => 'SJL1VWRESELL_T',
'Site' => 'eNom',
'IsLockable' =>
array (
),
'IsRealTimeTLD' =>
array (
),
'TimeDifference' => '+0.00',
'ExecTime' => '0.000',
'Done' => 'true',
'TrackingKey' => 'b3c16684-c533-4947-b40a-19a5b4c08a31',
'RequestDateTime' => '5/10/2018 12:54:28 AM',
'debug' =>
array (
),
)
找到我的控制器代码:
public function test(){
$response = file_get_contents('https://resellertest.enom.com/interface.asp?command=gettldlist&uid=resellid&pw=resellpw&responsetype=xml');
$data = simplexml_load_string($response);
$configdata = json_encode($data);
return view('clientlayout.main.test1', array('configdata' =>
$configdata ));
}
建议我获取上述 format.I 中的数据的解决方案需要 json 解码格式的数据 view.when 我在控制器中使用 json_decode 我出现错误 "htmlspecialchars() expects parameter 1 to be string, array given"。
我刚刚测试了代码并且它有效
$response = file_get_contents('https://resellertest.enom.com/interface.asp?command=gettldlist&uid=resellid&pw=resellpw&responsetype=xml');
$data = simplexml_load_string($response);
$configdata = json_encode($data);
$final_data = json_decode($configdata,true);// Use true to get data in array rather than object
echo "<pre>";print_r($final_data);exit;
下面是我得到的输出,
Array
(
[tldlist] => Array
(
[tld] => Array
(
[0] => Array
(
[tld] => co.uk
)
[1] => Array
(
[tld] => eu
)
[2] => Array
(
[tld] => live
)
[3] => Array
(
[tld] => Array
(
)
)
)
[tldcount] => 4
)
[Command] => GETTLDLIST
[APIType] => API
[Language] => eng
[ErrCount] => 0
[ResponseCount] => 0
[MinPeriod] => Array
(
)
[MaxPeriod] => 10
[Server] => SJL1VWRESELL_T
[Site] => eNom
[IsLockable] => Array
(
)
[IsRealTimeTLD] => Array
(
)
[TimeDifference] => +0.00
[ExecTime] => 0.000
[Done] => true
[TrackingKey] => 2b71ef9f-005e-4a33-a66f-3f1f69188f1f
[RequestDateTime] => 5/10/2018 4:11:02 AM
[debug] => Array
(
)
)
我想这就是您要找的
它会起作用。
$configdata = collect(json_decode(json_encode($data)))
->toArray();