如何将数组的json对象转换为php数组
我有一个json字符串,其中一个有一个对象,一个是json数组,另一个是我想先把json数组转换成php数组,然后把其他json对象转换成php变量。请告诉我怎么做。我有stdclass,但无法获得准确的数据 Json字符串如何将数组的json对象转换为php数组,php,arrays,json,Php,Arrays,Json,我有一个json字符串,其中一个有一个对象,一个是json数组,另一个是我想先把json数组转换成php数组,然后把其他json对象转换成php变量。请告诉我怎么做。我有stdclass,但无法获得准确的数据 Json字符串 { "data": [ { "ques_name": "no", "ques_id": "1" }, { "ques_name": "yes", "ques_id": "2" }
{
"data": [
{
"ques_name": "no",
"ques_id": "1"
}, {
"ques_name": "yes",
"ques_id": "2"
}, {
"ques_name": "no",
"ques_id": "3"
}, {
"ques_name": "yes",
"ques_id": "4"
}, {
"ques_name": "no",
"ques_id": "5"
}, {
"ques_name": "yes",
"ques_id": "6"
}, {
"ques_name": "no",
"ques_id": "7"
}
],
"UserId": 163
}
我使用了下面的代码来获取数组,但它给出了大小为14的数组,其中as的大小应该是7
$params=$_GET['params'];
$arr=array();
$decode=json_decode($params);
$arr=$decode->data;
print_r($arr);
json\u decode($array)
将json对象转换为数组。编辑:
您可以尝试
json\u解码($array,true)代码>。这样,返回的对象将转换为关联数组
Edit2:使用编辑部分中的代码(json_decode($array,true);
),我得到以下数组(对我来说似乎没问题):
Edit3:关于如何获取数组的id/name部分,下面是一个小示例代码:
$jsonData= ''; // put here your json object
$arrayData = json_decode($jsonData, true);
if (isset($arrayData['data']))
{
foreach ($arrayData['data'] as $data)
{
echo 'id='.$data['ques_id'].', name='.$data['ques_name'].'<br>';
}
}
$jsonData='';//将json对象放在这里
$arrayData=json_decode($jsonData,true);
如果(isset($arrayData['data']))
{
foreach($arrayData['data']作为$data)
{
回显'id='.$data['ques_id'].'name='.$data['ques_name'.];
}
}
有很多方法可以达到同样的效果,其中一些方法如下
$array = (array) json_decode($xml_variable);
从
或
或
您也可以尝试:
array=get\u object\u vars(jsonData)
根据:
返回范围中指定对象的已定义对象可访问非静态属性的关联数组。如果未为属性分配值,则将返回空值
我知道,但它给了我std classI的对象,我使用下面的代码来获得数组,但它给了我大小为14的数组,其中as大小应该是7@TarunSharma您在使用object访问时遇到了什么问题?@TarunSharma请检查我的edit2,并告诉我这是否是您所期望的。它仅使用print\r打印。如何访问第一个数组iContains id&name&save rhem in array这print\r
到底给了你什么?
$array = (array) json_decode($xml_variable);
$array = json_decode(json_encode($xml_varible), true);
function object_to_array(json_decode($xml_varible))
{
if (is_array($data) || is_object($data))
{
$result = array();
foreach ($data as $key => $value)
{
$result[$key] = object_to_array($value);
}
return $result;
}
return $data;
}
function object_to_array(json_decode($xml_varible))
{
if ((! is_array($data)) and (! is_object($data))) return 'xxx'; //$data;
$result = array();
$data = (array) $data;
foreach ($data as $key => $value) {
if (is_object($value)) $value = (array) $value;
if (is_array($value))
$result[$key] = object_to_array($value);
else
$result[$key] = $value;
}
return $result;
}