[英]How to JSON encode multi-dimensional array?
我正在創建一個數組,用於將候選人詳細信息發布到API。 該API接受JSON格式的數據,我正在使用PHP數組為該API創建數據,並使用JSON編碼將其轉換為JSON數組。 但無法獲得預期的格式
PHP代碼
$postArray = array(
"DefaultCurrency" => "USD",
"UserName" => "data",
"Photograph" => "data",
"PhotographThumb" => "data",
"Group" => "data",
"Summary" => "data",
"ResumeText" => "data",
"RollupListMembership" => array(
"RollupCode" => "data"
),
"CustomFields" => array(
"FieldName" => "Major",
"Values" => array(
$finalResumeData-> "data"
),
"FieldName" => "Years of Experience",
"Values" => array(
$MonthsOfWorkExperience
),
"FieldName" => "Executive Type",
"Values" => array(
$finalResumeData-> "data"
),
)
);
如果我運行此代碼,因為它僅顯示CustomFields的最后結果
我曾嘗試對array()
中的各個CustomField使用array()
"CustomFields" => array(
array("FieldName" => "Major",
"Values" => array(
$finalResumeData-> "data"
)),
我得到的結果是
CustomFields: {
"0": {
"FieldName" : "Value",
"Values": ["data"]
}
}
預期結果
"CustomFields": [
{
"FieldName": "string",
"FieldType": "string",
"Values": [
"string"
]
},
{
"FieldName": "string",
"FieldType": "string",
"Values": [
"string"
]
}
],
因此,我應該在PHP數組中更新哪些內容以獲得預期的結果。
在“ CustomFields”內部,您將在一個數組中再次重復相同的鍵,因此它們將彼此覆蓋。 相反,您需要一個單獨的對象數組(由PHP中的關聯數組表示),即與所需JSON輸出中所示的結構相同。
"CustomFields" => array(
array(
"FieldName" => "Major",
"Values" => array(
$finalResumeData->data
)
),
array(
"FieldName" => "Years of Experience",
"Values" => array(
$MonthsOfWorkExperience
)
),
array(
"FieldName" => "Executive Type",
"Values" => array(
$finalResumeData->data
)
),
)
注意:假設您使用的是json_encode($postArray);
沒有任何額外的選擇。
演示: https : //eval.in/1059736
我剛剛修改了您的代碼,並獲得了所需的輸出。
$postArray = array(
"DefaultCurrency" => "USD",
"UserName" => "data",
"Photograph" => "data",
"PhotographThumb" => "data",
"Group" => "data",
"Summary" => "data",
"ResumeText" => "data",
"RollupListMembership" => array(
"RollupCode" => "data"
),
"CustomFields" => array(
array("FieldName" => "Major",
"Values" => array(
'dsadas'=> "data"
)),
array("FieldName" => "Years of Experience",
"Values" => array(
'rewrew'=>'dsa'
)),
array("FieldName" => "Executive Type",
"Values" => array(
'test'=> "data"
)),
)
);
echo "<pre>";print_r($postArray);
echo json_encode($postArray);
?>
這是我得到的輸出。
{
"DefaultCurrency":"USD",
"UserName":"data",
"Photograph":"data",
"PhotographThumb":"data",
"Group":"data",
"Summary":"data",
"ResumeText":"data",
"RollupListMembership":{
"RollupCode":"data"
},
"CustomFields":[
{
"FieldName":"Major",
"Values":{
"dsadas":"data"
}
},
{
"FieldName":"Years of Experience",
"Values":{
"rewrew":"dsa"
}
},
{
"FieldName":"Executive Type",
"Values":{
"test":"data"
}
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.