内爆JSON对象

时间:2013-07-25 09:38:40

标签: php json

下面给出的是我的代码:

$array=$_POST[number];
$jstring = json_decode($array,true);

$sa = "'".implode("','",$jstring)."'";

错误如下:

Warning: implode() [function.implode]: Invalid arguments passed <root> on line <line no>

NumberJSON个对象。有人可以帮我吗?请。 提前致谢。

修改 Number是JSON字符串。我需要它以逗号分隔。号码保存手机联系人的电话号码。我需要在Sql Query中使用每个号码。


问题已解决: 我解决了这个问题。与他人分享。

$array = $_POST[number];
$json = (array) json_decode($array,true);

$sa = "'" . implode(',', $json) . "'";

3 个答案:

答案 0 :(得分:2)

试试这个:

$json = $_POST['number']; // $json is a json string
$object = json_decode($json, JSON_FORCE_OBJECT); // stdClass => array
echo implode("','", $object); // This works if $object is not multiple array

答案 1 :(得分:1)

如果您在调试时遇到问题,请使用var_dump,或者甚至与gettype()结合使用您正试图崩溃的参数。你永远不需要内爆JSON对象,它们被完美地解码。确保您知道CSV(逗号分隔值)和JSON之间的区别。

CSV:

Believe,it,or,not,I,am,CSV

而JSON:

{"itbetrue":"ibeJSON"}
{"iam":["an","array","in","JSON"]}

如果您正在尝试获取JSON解码数组的值,请按以下方式使用它:

$csv = implode(',', array_values($json));

答案 2 :(得分:0)

确保值$ _POST [number]在尝试解码之前以json格式出现...可以var_dump并检查