我有一个存储在PHP文件中的多个数组,如下所示:
$animals = array('cat', 'dog', 'bear', 'tiger');
$house = array('couch', 'tv', 'chair', 'table', 'lamp');
我是这样从PHP访问的:
$animals[0] ---> returns cat
$house[1] ---> returns tv
但是我需要将所有这些转换为JSON并将其存储在外部文件中。 我试过这样做:
{"animals":["cat", "dog", "bear", "tiger"]},
{"house":["couch", "tv", "chair", "table", "lamp"]}
然后我的PHP就是这样的
$json = file_get_contents('data/default.json');
$array = json_decode($json, true);
然而,当我尝试从这个数组回显soemething时,它会给我一个错误或只是一个空白的屏幕。
我尝试了多种方式:
$array["animals"][0]
$array[0][0]
我不知道我的问题是json格式化还是我访问它的方式,或者我没有将它转换为数组。有人可以解释一下应该怎么做?
答案 0 :(得分:1)
animals
列表后面的逗号..."tiger"]}, <--
表示这两个列表是我们在您发布的JSON中没有看到的更大结构的一部分。
尝试将您的JSON更改为:
{
"animals": ["cat", "dog", "bear", "tiger"],
"house": ["couch", "tv", "chair", "table", "lamp"]
}
测试:
$json = '{"animals": ["cat", "dog", "bear", "tiger"],"house": ["couch", "tv", "chair", "table", "lamp"]}';
$array = json_decode($json, true);
echo $array1["animals"][0]."\n";
echo $array1["animals"][1]."\n";
echo $array1["house"][1]."\n";
/*
Output:
cat
dog
tv
*/
答案 1 :(得分:1)
你有这些数组:
$animals = array('cat', 'dog', 'bear', 'tiger');
$house = array('couch', 'tv', 'chair', 'table', 'lamp');
使用此代码:
$json = json_encode( array( 'animals'=>$animals,'house'=>$house ) );
echo $json;
你将获得这个JSON:
{"animals":["cat","dog","bear","tiger"],"house":["couch","tv","chair","table","lamp"]}
使用此代码:
$json = json_encode( array( array('animals'=>$animals),array('house'=>$house) ) );
echo $json;
你将获得这个JSON:
[{"animals":["cat","dog","bear","tiger"]},{"house":["couch","tv","chair","table","lamp"]}]
当您从数组开始时,使用内置函数json_encode
是获取有效JSON 的更好方法。
答案 2 :(得分:0)
您好我认为您应该尝试这种方式
{
"animals": ["cat", "dog", "bear", "tiger"],
"house": ["couch", "tv", "chair", "table", "lamp"]
}