0
我有一個JSON輸出包含數字鍵,我需要根據映射參考轉換爲字符串。PHP更新JSON密鑰名稱
源JSON:
{
"results": {
"d": [
{
"_3": "Q0001",
"_85": "1"
},
{
"_3": "Q1009",
"_85": "1"
}
]
},
"columnDefs": {
"z": [
{
"field": "_3",
"caption": "QID",
"sortable": "true",
"resizeable": "true"
},
{
"field": "_85",
"caption": "Is Exempt",
"sortable": "true",
"resizeable": "true"
}
]
}
}
所需的結果:
[
{
"QID": "Q123",
"Emp ID": "E12345"
},
{
"QID": "X123",
"Emp ID": "E34567"
}
]
我解碼JSON陣列,這樣我可以遍歷它。在這個數組中,有一個columnDefs
即我的地圖。我保存這個作爲$reference = [];
讓我的ID爲String(_3 > QID
)轉換
我被困試圖找出如何使用它在基準相匹配的的更新密鑰名稱。
// Given a JSON string, convert the key names to the field names
function mapFields($json){
// Vars
$reference = [];
$arr = json_decode($json);
// Loop over our column defs and store the ID => Name
foreach($arr->x->columnDefs->z as $j){
$reference[$j->field] = $j->caption;
}
// Loop over the JSON and update the keys from ID to Name based on the reference
foreach($arr->x->results->d as $key => $value){
// Loop over all the keys
foreach($key as $k){
// Update the key name to its reference in the $reference array
}
}
我想實現這個,但有一些麻煩。我的地圖和源數據來自同一個'json'。有'results(source)'和'columnDefs(map)'。 – SBB
您將需要顯示兩個JSON的示例。 – AbraCadaver
使用包含我的結果和地圖的json更新OP – SBB