我有一系列PHP变量:
$a = "a";
$b = "b";
$c = "c";
and so on...
如何将所有这些变量转换为单个JSON对象?这可能吗?
答案 0 :(得分:4)
您当前正在将数据存储为顺序字符串。这是一个糟糕的主意。如果您有可以组合在一起的数据,那么使用数组几乎总是更好。这使得事情变得更加容易。
现在回答你原来的问题:
如果已知变量数,则可以先创建一个数组,然后使用json_encode()
创建JSON字符串:
$arr = array($a, $b, $c);
$json = json_encode($arr);
如果事先不知道变量名,可以使用get_defined_vars()
获取已定义变量的列表。
$arr = array_filter(get_defined_vars(), 'is_string');
echo json_encode($arr);
但这是一个坏主意。这仅在所有变量都包含在JSON表示中时才有效。例如,如果您的代码中定义了私有变量$somePrivateData
,则JSON字符串也将包含该变量的值。
答案 1 :(得分:1)
您可以将变量转换为使用json_encode()
(docs)。通常,通过传递数组来使用它:
$array = array($a, $b, $c);
$result = json_encode($array);
编辑(来自评论):
如果要分隔每个值,您可以(正如您在评论中提到的那样)分别调用每个字符串上的编码函数。例如,您仍然可以将它们放入数组并使用
$result = array_map('json_encode', $array);
$result
将包含3个json编码的字符串,但变量本身仍然是一个数组。
当然,你仍然可以使用:
$a = json_encode($a);
$b = json_encode($b);
$c = json_encode($c);
答案 2 :(得分:0)
也许这可以帮到你: json_encode function