【问题标题】:Could not decode the JSON string using PHP无法使用 PHP 解码 JSON 字符串
【发布时间】:2017-05-25 07:47:57
【问题描述】:

我无法使用 PHP 将 JSON 字符串转换为数组。这是我的代码:

$edu=$_POST['edu'];
echo ($edu);

上面的行给出了下面的输出。

'[{"uname":"univ1","year":"2017","description":"hello"},{"uname":"univ2","year":"2016","description":"hello des"}]' 

我需要使用下面的代码将其转换为数组。

$eduArr=json_decode($edu,true);
print_r($eduArr);

但在这里我得到的输出为(empty)。我需要将上面的字符串转换为数组。

【问题讨论】:

  • $edu = trim($_POST['edu'], "'"); 也许
  • json_last_error 是什么意思?
  • @hassan : 如何检查错误?
  • 那个字符串解码得很好。在您的json_decode() 之后添加echo json_last_error_msg();,看看您是否收到一些有用的错误消息

标签: php arrays json string


【解决方案1】:

您的 json 字符串不是有效的 json。它在字符串的两侧都有额外的'

从您的回显结果中,' 在字符串的每一侧输出。对于 json 字符串,' 不应该在那里。

你可以查看live demo here有很好的了解。

$eduArr=json_decode(trim($edu, '\''),true);
print_r($eduArr);

【讨论】:

  • 如果我有"[{\"uname\": \"Trident Academy Of Creative Technology\", \"year\": \"2011\", \"description\": MCA\"}]" 数据那么如何修剪。
  • 你不需要。你试过了吗?
  • 不,我没有尝试过,但是这样的数据会来那么如何获得预期的输出。
  • 这是因为你的json字符串无效。 MCA\"应该\"MCA\"可以查看here
【解决方案2】:

这对我有用:

$json = '[{"uname":"univ1","year":"2017","description":"hello"},{"uname":"univ2","year":"2016","description":"hello des"}]';
$arr = json_decode($json);
print_r($arr);

【讨论】:

  • 我知道它在给出直接字符串时可以正常工作,但是在这种情况下我在 post 方法中获取数据时不起作用
猜你喜欢
  • 2017-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2015-02-25
相关资源
最近更新 更多