将 json 数据存储到 php 变量
Store json data to php variable
我正在尝试将数据从 json 文件存储到 php 变量。但是当我尝试回显变量供以后使用时它不会工作。
这是我的 json 文件:
"[{\"channelId\":150342342,\"channelName\":\"example.no\",\"channelUrl\":\"http:\/\/www.example.no\"},{\"channelId\":1529564329,\"channelName\":\"example2.no\",\"channelUrl\":\"http:\/\/www.example2.no\"},{\"channelId\":1536534822,\"channelName\":\"example3.no\",\"channelUrl\":\"http:\/\/www.example3.no\"}]"
这是我的代码:
<?php
require_once('config.php');
$channeljson = file_get_contents('channels.json');
$data = json_decode($channeljson, true);
$channelid = $data['channelId'];
$channelname = $data['channelName'];
$channelurl = $data['channelUrl'];
我也尝试过很多其他方法..
有人有任何有用的提示吗?
您的文件包含一个代表字符串的 json,因为它以 "
字符开始和结束。另一个问题是转义字符 \
.
如果您不想更改写入 json 文件的例程,您可以通过更正无效的 json:
来解决您的问题
$data = json_decode(trim(stripslashes($channeljson), '"'), true); // Removes the escape and the enclosing " characters
还有一个问题:json 表示一个对象数组(数组,因为您将 true 传递给第二个 json_decode 函数)并且您正在尝试访问 $data
像一个常规数组。
查看 $data 内容:
array(3) {
[0]=>
array(3) {
["channelId"]=>
int(150342342)
["channelName"]=>
string(10) "example.no"
["channelUrl"]=>
string(21) "http://www.example.no"
}
[1]=>
array(3) {
["channelId"]=>
int(1529564329)
["channelName"]=>
string(11) "example2.no"
["channelUrl"]=>
string(22) "http://www.example2.no"
}
[2]=>
array(3) {
["channelId"]=>
int(1536534822)
["channelName"]=>
string(11) "example3.no"
["channelUrl"]=>
string(22) "http://www.example3.no"
}
}
我正在尝试将数据从 json 文件存储到 php 变量。但是当我尝试回显变量供以后使用时它不会工作。
这是我的 json 文件:
"[{\"channelId\":150342342,\"channelName\":\"example.no\",\"channelUrl\":\"http:\/\/www.example.no\"},{\"channelId\":1529564329,\"channelName\":\"example2.no\",\"channelUrl\":\"http:\/\/www.example2.no\"},{\"channelId\":1536534822,\"channelName\":\"example3.no\",\"channelUrl\":\"http:\/\/www.example3.no\"}]"
这是我的代码:
<?php
require_once('config.php');
$channeljson = file_get_contents('channels.json');
$data = json_decode($channeljson, true);
$channelid = $data['channelId'];
$channelname = $data['channelName'];
$channelurl = $data['channelUrl'];
我也尝试过很多其他方法..
有人有任何有用的提示吗?
您的文件包含一个代表字符串的 json,因为它以 "
字符开始和结束。另一个问题是转义字符 \
.
如果您不想更改写入 json 文件的例程,您可以通过更正无效的 json:
来解决您的问题$data = json_decode(trim(stripslashes($channeljson), '"'), true); // Removes the escape and the enclosing " characters
还有一个问题:json 表示一个对象数组(数组,因为您将 true 传递给第二个 json_decode 函数)并且您正在尝试访问 $data
像一个常规数组。
查看 $data 内容:
array(3) {
[0]=>
array(3) {
["channelId"]=>
int(150342342)
["channelName"]=>
string(10) "example.no"
["channelUrl"]=>
string(21) "http://www.example.no"
}
[1]=>
array(3) {
["channelId"]=>
int(1529564329)
["channelName"]=>
string(11) "example2.no"
["channelUrl"]=>
string(22) "http://www.example2.no"
}
[2]=>
array(3) {
["channelId"]=>
int(1536534822)
["channelName"]=>
string(11) "example3.no"
["channelUrl"]=>
string(22) "http://www.example3.no"
}
}