我正在嘗試創建存儲在mySQL中的數據的JSON表示形式。創建包含來自mySQL數據源的數組和對象的JSON
我正在嘗試記錄一個RESTful API。
我使用PHP的json_encode()函數。
我有一個包含如
1)名稱 2)父 3)DATA_TYPE(對象/陣列/串/數以匹配JSON數據類型) 4)值
數據的表我正在嘗試創建一個通用函數,它允許我通過簡單地向mySQL數據庫添加數據來構建這些JSON字符串。
雖然我在處理對象和數組時遇到了問題。
例如JSON的應該是:
{
"sessionToken":"","roleName":""
,"data":[
{
"methodTypes":[""] , "objects":[""]
}
]
}
但它是出來爲:
{
"sessionToken":"","roleName":""
,"data":[
{
"methodTypes":[""]
}
,{
"objects":[""]
}
]
}
這表明我由於某種原因,我的代碼被添加對象都methodType和對象,因爲它應該在單個對象內。
我想首先創建一個包含methodTypes和對象的數組。 然後我以$ objects - > $ A的格式創建一個對象,並且使其與第一步中創建的數組相等。 然後我添加到JSON一代的主數據數組。
我一直在搜索顯示JSON使用示例的示例,這兩個示例在同一個JSON中都需要數組和對象時纔會成功。
任何指針在正確的方向將不勝感激。
更新#1:
正被饋送到json_encode(所述陣列的的var_dump)爲:
array(3) { ["sessionToken"]=> string(0) "" ["roleName"]=> string(0) "" ["data"]=> array(2) { [0]=> array(1) { ["methodTypes"]=> array(1) { [0]=> string(0) "" } } [1]=> array(1) { ["objects"]=> array(1) { [0]=> string(0) "" } } } }
其中,如果我採取已知良好JSON和做json_decode(),則的var_dump樣子:
object(stdClass)#3 (3) { ["sessionToken"]=> string(0) "" ["roleName"]=> string(0) "" ["data"]=> array(1) { [0]=> object(stdClass)#4 (2) { ["methodTypes"]=> array(1) { [0]=> string(0) "" } ["objects"]=> array(1) { [0]=> string(0) "" } } } }
或
array(3) { ["sessionToken"]=> string(0) "" ["roleName"]=> string(0) "" ["data"]=> array(1) { [0]=> array(2) { ["methodTypes"]=> array(1) { [0]=> string(0) "" } ["objects"]=> array(1) { [0]=> string(0) "" } } } }
如果我將它設置爲TRUE返回數組而不是對象。
你可以發佈你與'json_encode'使用數組的'var_dump'?我想你可能在這方面有你的數據結構錯誤 – Machavity
Machavity感謝您的迴應。我已更新帖子以顯示var_dump信息。我是否可以添加其他內容來幫助更清楚地說明問題? – blaine
嘗試使用php數組,因爲它們也可以是關聯的,如果需要的話,'json_encode'會調整爲javascript對象。例如'$ arr ['foo'] = array('bar','gggg')'會轉換爲'{「foo」:[「bar」,「gggg」]}' – charlietfl