我正在尝试转换从我的mySQL数据库中提取的php中的Json字符串。我使用json_decode成功使用其他类似的字符串,但出于某种原因我尝试解码此字符串时:
$Json ='{"S1": "15,2,0,4,0,0,1","S2": "50,0,99,1,5,1,1,0"}';
json_decode($Json, true);
我收到错误'Array to string conversion'。
我用这个字符串成功地做了同样的事情,
[{"group":"new","users":",12345678","S1":"56,3,0,0,0,6,0","S2":"0,0,49,0,4,0,0,0","enabled":"1","admin":"1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0"}]
我不知道两者之间的区别是什么,因为它们都来自同一个数据库,并且都成功验证了Json。有人能告诉我如何成功转换这个,以便我可以让json_decode成功地工作吗?感谢。
**更新:这是我正在使用的实际代码
$tmpUserJson = $row['JSONSettings’];
$tmpUserJson='['.$tmpUserJson.']'; ///I’ve tried with and without brackets
echo $tmpUserJson; //returns {"S1":"15,2,0,4,0,0,1","S2":"50,0,99,1,5,1,1,0”}
$userJson = json_decode( $tmpUserJson , true);
echo $userJson['S1']; // returns Notice: Array to string conversion
答案 0 :(得分:1)
我认为你得到它是因为你试图回应一个数组。 试试:
$Json ='{"S1": "15,2,0,4,0,0,1","S2": "50,0,99,1,5,1,1,0"}';
$Json = json_decode($Json);
foreach( $Json as $item ){
echo $item. "<br />";
}
或者你可以var_dump你的结果: $ Json =&#39; {&#34; S1&#34;:&#34; 15,2,0,4,0,0,1&#34;,&#34; S2&#34;:&#34 ; 50,0,99,1,5,1,1,0&#34;}&#39 ;;
$Json = json_decode($Json);
var_dump($Json);
答案 1 :(得分:1)
$userJson = json_decode( $tmpUserJson , true);// this line return an associative array
echo $userJson; // echo can't echo out an array that's why you got that error
正如@David所提到的,如果你想要回显$userJson
,那么你有几个选择:
1:循环遍历数组元素,例如:foreach($userJson as $value){ echo $value;}
2用于测试目的:您可以使用$userJson
或var_dump($userJson)
查看print_r($userJson)
数据;
祝你好运