PHP - 如何将数组动态添加到对象请求
PHP - How to dynamically add array to Object request
我正在进行 Jira REST API 调用,我想知道如何使用 PHP 中的 REST API 将多个组件动态添加到组件字段。我有以下代码,当我将它设置为静态时可以工作,但不确定如何动态地进行。
静态组件集示例:
$data = array(
'fields' => array(
'project' => array(
'key' => $rowAnswers["Key"]
),
'summary' => $rowAnswers["Summary"],
'description' => $rowAnswers["Description"],
'issuetype' => array(
'name' => $rowAnswers["IssueType"]
),
'components' => array(
array(
"name" => "component1"
),
array(
"name" => "component2"
)
)
),
);
我想用以下内容替换静态内容的数组:
$components = explode(",", $rowAnswers["Components"]);
$arr = array();
foreach($components as $value){
$array = array("name"=>$value);
array_push($arr,$array);
}
正在替换
'components' => array(
array(
"name" => "component1"
),
array(
"name" => "component2"
)
)
和
'components' => [
$arr
]
不起作用,我得到:
"{"error":false,"error_msg":"","data":"{\"errorMessages\":[],\"errors\":{\"components\":\"expected Object\"}}"}"
我在一个 api 调用中看到一个看起来像这样的请求:
[components] => Array
(
[0] => stdClass Object
(
[name] => component1
)
[1] => stdClass Object
(
[name] => component2
)
)
但是我不确定如何在PHP中将数组转换为这种类型的对象或请求。使用 PHP-cURL 和 json_encoding 发送的数据调用。
提前致谢!
您需要通过将第二个参数设置为 true
将 json 解码为关联数组
查看 json_decode
assoc
When TRUE, returned objects will be converted into associative arrays.
要解决此问题,我必须执行以下操作:
从数据库创建数组时:
$components = explode(",", $rowAnswers["Components"]);
$arr = array();
foreach($components as $value){
$array = json_decode(json_encode(array("name"=>$value)), FALSE);
array_push($arr,$array);
}
然后在请求中设置组件:
'components' => $arr
谢谢
我正在进行 Jira REST API 调用,我想知道如何使用 PHP 中的 REST API 将多个组件动态添加到组件字段。我有以下代码,当我将它设置为静态时可以工作,但不确定如何动态地进行。
静态组件集示例:
$data = array(
'fields' => array(
'project' => array(
'key' => $rowAnswers["Key"]
),
'summary' => $rowAnswers["Summary"],
'description' => $rowAnswers["Description"],
'issuetype' => array(
'name' => $rowAnswers["IssueType"]
),
'components' => array(
array(
"name" => "component1"
),
array(
"name" => "component2"
)
)
),
);
我想用以下内容替换静态内容的数组:
$components = explode(",", $rowAnswers["Components"]);
$arr = array();
foreach($components as $value){
$array = array("name"=>$value);
array_push($arr,$array);
}
正在替换
'components' => array(
array(
"name" => "component1"
),
array(
"name" => "component2"
)
)
和
'components' => [
$arr
]
不起作用,我得到:
"{"error":false,"error_msg":"","data":"{\"errorMessages\":[],\"errors\":{\"components\":\"expected Object\"}}"}"
我在一个 api 调用中看到一个看起来像这样的请求:
[components] => Array
(
[0] => stdClass Object
(
[name] => component1
)
[1] => stdClass Object
(
[name] => component2
)
)
但是我不确定如何在PHP中将数组转换为这种类型的对象或请求。使用 PHP-cURL 和 json_encoding 发送的数据调用。
提前致谢!
您需要通过将第二个参数设置为 true
将 json 解码为关联数组查看 json_decode
assoc
When TRUE, returned objects will be converted into associative arrays.
要解决此问题,我必须执行以下操作:
从数据库创建数组时:
$components = explode(",", $rowAnswers["Components"]);
$arr = array();
foreach($components as $value){
$array = json_decode(json_encode(array("name"=>$value)), FALSE);
array_push($arr,$array);
}
然后在请求中设置组件:
'components' => $arr
谢谢