Javascript Json的三维关联数组?
经过几次尝试,我不得不寻求一些帮助来解决这个问题。下面是一些简单的JSON:Javascript Json的三维关联数组?,javascript,php,arrays,json,Javascript,Php,Arrays,Json,经过几次尝试,我不得不寻求一些帮助来解决这个问题。下面是一些简单的JSON: { "test": { "r1": [{ "id": 1, "status": true }, { "id": 2, "status": true }], "r2": [{ "id": 1, "status
{
"test": {
"r1": [{
"id": 1,
"status": true
}, {
"id": 2,
"status": true
}],
"r2": [{
"id": 1,
"status": false
}, {
"id": 2,
"status": false
}]
}
}
当我从一个简单的.txt文件中读取时,这可以很好地使用javascript,但是我想从PHP创建这个JSON。我可以做一个二维关联数组,但对于这个,我似乎需要一个三维关联数组,我不能解决这个问题!有人能给我一个提示吗?或者其他解决方案是什么样子的?这里有一个很好的例子,介绍了如何将JSON对象(字符串)转换为PHP数组,以及如何将其转换为PHP数组。
希望这能让您明白
<?php
// Original JSON object string
$jsonstring = '{
"test":{
"r1":[{
"id":1,
"status":true
},{
"id":2,
"status":true
}],
"r2":[{
"id":1,
"status":false
},{
"id":2,
"status":false
}]
}
}';
// Convert JSON string to PHP array
// This can be used by a PHP script to work on
$phparray = json_decode($jsonstring);
echo '<h3>PHP array converted from JSON string</h3><pre>'; var_dump($phparray); echo '</pre>';
// Convert it back to JSON string to prove it's the same
$jsonstring1 = json_encode($phparray);
// Now we create a PHP array corresponding to original JSON string, manually
$phparray = array (
"test"=> array (
"r1" => array(
array(
"id"=>1,
"status"=>true
),
array(
"id"=>2,
"status"=>true
)
),
"r2" => array(
array(
"id"=>1,
"status"=>false
),
array(
"id"=>2,
"status"=>false
)
)
)
);
// Convert PHP array to JSON string
// This can be sent to a browser where it can be used by Javascript
$jsonstring2 = json_encode($phparray);
echo '<h3>Original JSON string</h3>' . $jsonstring;
echo '<h3>After conversion to array and back</h3>' . $jsonstring1;
echo '<h3>Converted from PHP array</h3>' . $jsonstring2;
?>
下面是一个包含您的数据的示例,介绍如何从JSON对象(字符串)转换为PHP数组,以及如何从PHP数组转换为JSON对象。
希望这能让您明白
<?php
// Original JSON object string
$jsonstring = '{
"test":{
"r1":[{
"id":1,
"status":true
},{
"id":2,
"status":true
}],
"r2":[{
"id":1,
"status":false
},{
"id":2,
"status":false
}]
}
}';
// Convert JSON string to PHP array
// This can be used by a PHP script to work on
$phparray = json_decode($jsonstring);
echo '<h3>PHP array converted from JSON string</h3><pre>'; var_dump($phparray); echo '</pre>';
// Convert it back to JSON string to prove it's the same
$jsonstring1 = json_encode($phparray);
// Now we create a PHP array corresponding to original JSON string, manually
$phparray = array (
"test"=> array (
"r1" => array(
array(
"id"=>1,
"status"=>true
),
array(
"id"=>2,
"status"=>true
)
),
"r2" => array(
array(
"id"=>1,
"status"=>false
),
array(
"id"=>2,
"status"=>false
)
)
)
);
// Convert PHP array to JSON string
// This can be sent to a browser where it can be used by Javascript
$jsonstring2 = json_encode($phparray);
echo '<h3>Original JSON string</h3>' . $jsonstring;
echo '<h3>After conversion to array and back</h3>' . $jsonstring1;
echo '<h3>Converted from PHP array</h3>' . $jsonstring2;
?>
从外观上看:array($your_array)
从什么输入创建它?实际上,你需要一个四维数组。但是,如果您知道如何创建二维数组,这对您来说应该不是问题-这里也适用相同的规则。下面是一个示例,说明如何读取/写入这样的数组:$arr['test']['r1'][0]['id']=1
。我明白你的要求了吗?@charlietfl我想创建一个类似于此后端的JSON文件,然后用AJAX读取,并将其用作Javascript中的对象。@PetrR。感谢您提供如何读取/写入此阵列的信息!从外观上看:array($your_array)
从什么输入创建它?实际上,您需要从中创建一个四维数组。但是,如果您知道如何创建二维数组,这对您来说应该不是问题-这里也适用相同的规则。下面是一个示例,说明如何读取/写入这样的数组:$arr['test']['r1'][0]['id']=1
。我明白你的要求了吗?@charlietfl我想创建一个类似于此后端的JSON文件,然后用AJAX读取,并将其用作Javascript中的对象。@PetrR。感谢您提供如何读取/写入此阵列的信息!谢谢你的回答!这是四维数组吗?当脚本读取.php文件时,我在代码($phparray部分)中得到一个错误?可能是什么问题?数组与您发布的JSON字符串完全对应。你得到了什么错误?我得到了:uncaughtsyntaxerror:uncontractedtoken<我的javascript中的这一行可能有问题?var myObj=JSON.parse(xmlhttp.responseText);是的,可能。顺便说一句:我在PHP代码中添加了注释。谢谢,但我不知道怎么会出现这个错误!?我的下一步是更改此代码,以便可以在服务器上以动态方式填充数组。有什么提示吗?谢谢你的回答!这是四维数组吗?当脚本读取.php文件时,我在代码($phparray部分)中得到一个错误?可能是什么问题?数组与您发布的JSON字符串完全对应。你得到了什么错误?我得到了:uncaughtsyntaxerror:uncontractedtoken<我的javascript中的这一行可能有问题?var myObj=JSON.parse(xmlhttp.responseText);是的,可能。顺便说一句:我在PHP代码中添加了注释。谢谢,但我不知道怎么会出现这个错误!?我的下一步是更改此代码,以便可以在服务器上以动态方式填充数组。有什么提示吗?