我正在尝试创建存储在 mySQL 中的数据的 JSON 表示。
我正在尝试记录一个 RESTful API。
我正在使用 PHP 的 json_encode() 函数。
我有一个包含数据的表,例如
1) name 2) parent 3) data_type (object/array/string/number 以匹配 JSON 数据类型) 4) value
我正在尝试创建一个通用函数,它允许我通过简单地将数据添加到 mySQL 数据库来构建这些 JSON 字符串。
不过,我在使用对象和数组时遇到了问题。
例如 JSON 应该是:
{
"sessionToken":"","roleName":""
,"data":[
{
"methodTypes":[""] , "objects":[""]
}
]
}
然而它的出现是:
{
"sessionToken":"","roleName":""
,"data":[
{
"methodTypes":[""]
}
,{
"objects":[""]
}
]
}
由于某种原因,这向我表明我的代码正在为 methodType 和对象添加一个对象,因为它应该只是在单个对象中。
我试图首先创建一个包含方法类型和对象的数组。然后我以 $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 以返回数组而不是对象。