在PHP中为JSON对象数组设置值
我想使用PHP为文本对象内的文本数组设置一个字符串值,该文本对象位于fulfillmentMessages JSON数组内。 我目前正在尝试使用此代码,但失败了在PHP中为JSON对象数组设置值,php,json,Php,Json,我想使用PHP为文本对象内的文本数组设置一个字符串值,该文本对象位于fulfillmentMessages JSON数组内。 我目前正在尝试使用此代码,但失败了 $response->fulfillmentMessages[text]->text = "Hello "; echo json_encode($response); 我得到的JSON是: { "responseId": "b19f0045-830e-4d12-a57e-07cdfd55f", "queryResu
$response->fulfillmentMessages[text]->text = "Hello ";
echo json_encode($response);
我得到的JSON是:
{
"responseId": "b19f0045-830e-4d12-a57e-07cdfd55f",
"queryResult": {
"queryText": "yes",
"action": "send.first.question",
"parameters": {},
"allRequiredParamsPresent": true,
"fulfillmentMessages": [
{
"text": {
"text": [
""
]
}
}
],
"outputContexts": [
{
"name": "projects/quizbot-90a24/agent/sessions/9c08dfd274-7ece-19fe-c984-f5cd5ef135c7/contexts/expressname-followup",
"lifespanCount": 1,
"parameters": {
"userName": "saliya",
"userName.original": "saliya"
}
},
{
"name": "projects/quizbot-90a24/agent/sessions/9c08fdvfsd4-7ece-19fe-c984-f5cd5ef135c7/contexts/sessionusername",
"lifespanCount": 4,
"parameters": {
"userName": "saliya",
"userName.original": "saliya"
}
}
],
"intent": {
"name": "projects/quizbot-90agd24/agent/intents/063ed465-0ca1-4d94-bf7c-5b7ac4c31f6f",
"displayName": "expressName - yes"
},
"intentDetectionConfidence": 1,
"diagnosticInfo": {
"end_conversation": true
},
"languageCode": "en"
}
}
这是我打算得出的结果:
"fulfillmentMessages": [
{
"text": {
"text": [
"Hello"
]
}
}
你的压痕使我感到一阵震惊。这会奏效的
$response->queryResult->fulfillmentMessages[0]->text->text[0] = "Hello";
我没有注意到fulfillmentMessages是queryResult的属性。您试图操作嵌套对象和数组中的数组项,因此需要将其更改为 $response->queryResult->fulfillmentMessages[0]->text->text[0]=你好 例如:
这是您试图操作的json,还是您尝试操作失败的json结果?@LawrenceRone No仍然没有绑定字符串。@难以置信,这就是我试图操作的json。如您所见,文本数组为空。我更新了你能理解的问题。是的,很抱歉添加查询结果。我错过了那一点,答案如下。呵呵。。。这就是为什么适当的缩进总是有用的:我想你得到了答案,不是吗?别忘了接受答案。@LawrenceCherone我编辑了原文,所以现在没人知道我们在说什么了,哈哈
<?php
$response = json_decode('{
"responseId": "b19f0045-830e-4d12-a57e-07cdfd55f",
"queryResult": {
"queryText": "yes",
"action": "send.first.question",
"parameters": {},
"allRequiredParamsPresent": true,
"fulfillmentMessages": [{
"text": {
"text": [
""
]
}
}]
}
}');
$response->queryResult->fulfillmentMessages[0]->text->text[0] = "Hello";
print_r($response);
stdClass Object
(
[responseId] => b19f0045-830e-4d12-a57e-07cdfd55f
[queryResult] => stdClass Object
(
[queryText] => yes
[action] => send.first.question
[parameters] => stdClass Object
(
)
[allRequiredParamsPresent] => 1
[fulfillmentMessages] => Array
(
[0] => stdClass Object
(
[text] => stdClass Object
(
[text] => Array
(
[0] => Hello
)
)
)
)
)
)