2017-08-07 155 views
0

我知道有一堆關於PHP數組轉換爲JSON結果的另一個話題,但我需要的是一點點具體的,我很感激,如果有人可以幫助取得預期的結果。轉換PHP數組到JSON

我試圖生成使用一些陣列或2個維數組以下JSON的結果,但它不能正常工作。

其他人可以幫我把這個結果作爲JSON值如下嗎?

{ 
"header": { 
    "key": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
}, 
"jobs": [{ 
    "jobDefinition": { 
    "header": { 
    "jobDefinitionKey": { 
    "name": "JOBAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }, 
    "header": { 
    "key": { 
    "name": "JOBAGUINA", 
    "jobStreamKey": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    } 
}, { 
    "jobDefinition": { 
    "header": { 
    "jobDefinitionKey": { 
    "name": "JOBAGUINA_1", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }, 
    "header": { 
    "key": { 
    "name": "JOBAGUINA_1", 
    "jobStreamKey": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }, 
    "internalDependencies": [{ 
    "jobKey": { 
    "name": "JOBAGUINA", 
    "jobStreamKey": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }] 
}] 
} 
+0

可以添加一個代碼,以顯示您停止,所以我們可以搞清楚這是最好的,並幫助您的邏輯錯誤是 –

+0

我沒有看到任何與您的符號過於獨特,一切都是除非其對象一個對象數組(其中方括號表示法開始) – Scuzzy

+0

echo json_encode($ array);這不正常嗎? – Slavez

回答

0

很難判斷出錯的地方而沒有看到PHP數組的內容。

使用echo json_encode($arr);得到這個數組。如果您在返回時嘗試在使用json_encode之前將值轉換爲utf-8(在大多數情況下幫助我)。

爲了進一步調試,你應該使用json_last_error

0

使用json_encode()將數組轉換成JSON:

echo json_encode($yourarray); 
0

現在我能正確生成JSON,但它仍然缺少一個點作爲你們下面可以看到,它錯過了最後的2個元素「tasksString」和「recoveryOption」正確:

見最後兩個元素下面是不是在陣列的正確位置。他們應該在「},」之後。

預期:

'{ 
           "header": { 
            "jobDefinitionKey": { 
             "name": "'. $jobname .'", 
             "workstationName": "' . $wks . '" 
            }, 
            "description": "' . $descrip . '", 
            "taskType": "' . $tasktype . '", 
            "isCommand": "'. $command .'", 
            "userLogin": "' . $userlogin . '" 
            }, 
            "taskString": "' . $taskcmd . '", 
            "recoveryOption": "STOP" 
           }'; 

代碼:

$object->header = array (
    'jobDefinitionKey' => array (
      'name' => $jobname, 
      'workstationName' => $wks 
    ), 
    'description' => $descrip, 
    'taskType' => $tasktype, 
    'isCommand' => $command, 
    'userLogin' => $userlogin, 

      'taskString' => $taskcmd, 
      'recoveryOption' => 'STOP' 
    ) ;  

我的JSON結果:

{ 
"header": { 
    "jobDefinitionKey": { 
     "name": null, 
     "workstationName": null 
    }, 
    "description": null, 
    "taskType": null, 
    "isCommand": null, 
    "userLogin": null, 
    "taskString": null, 
    "recoveryOption": "STOP" 
} 

}

+0

見最後兩個元素下面是不是在陣列的正確位置...... 「taskString」:空, 「recoveryOption」:「STOP」 –