Json_decode返回Null和Error 4

时间:2015-05-13 02:06:18

标签: java php json laravel

当我解码我的Json时,我得到null。 $ contactInfo是通过Volley推送的Java(Android)字符串。我检查了字符串,它是一个字符串。

我试过以下

1)仅与一个用户的联系人建立$ contactInfo

2)删除了空格

3)删除♡

等特殊字符

4)删除+

我能找到的最接近解决方案[[数据,数据],[数据,数据]]的解决方案是使用json解码。有没有其他方法让我把它读成数组或json?

$contactInfo = "[[john qiu, +16266169643], [Vince, +65 5888 8447]]"
$obj = stripslashes($contactInfo);
$obj = json_decode($obj);
echo json_last_error(); 

echo正在返回JSON_ERROR_SYNTAX

contactInfo,对于某些用户,有一些特殊字符,如“♡”

4 个答案:

答案 0 :(得分:1)

正确的JSON格式是

$contactInfo = '[["john qiu", 16266169643], ["Vince", 6558888447]]"

您可以验证您的输出,看看它是否适用于某个网站,例如this,例如

答案 1 :(得分:0)

这段代码怎么样

$contactInfo = "[[john qiu, +1626643]]";
$obj = json_decode($contactInfo, true);
var_dump($obj);

答案 2 :(得分:0)

$contactInfo = "[[john qiu, +16266169643], [Vince, +65 5888 8447]]" 

在PHP中,$ contactInfo本身就是一个数组。为避免任何错误,请确保非数字值在引号中。例如:

$contactInfo = "[['john qiu', '+16266169643'], ['Vince', '+65 5888 8447']]" 

答案 3 :(得分:0)

整个字符串应该用单引号括起来,允许你用双引号封装json字符串段

<?php
$contactInfo = '[["john qiu", "+16266169643"], ["Vince", "+65 5888 8447"]]';
json_decode($contactInfo, true);
echo json_last_error(); 
?>
<b>output 0</b>

如果您的数据没有像这样格式化,您可能需要做一些聪明的preg_replace

相关问题