我想做的是:
这是从api的get获取php我想要传递给json的这个json字符串,但它没有转换为数组。
echo $str='{
action : "create",
record: {
type: "n$product",
fields: {
n$name: "Bread",
n$price: 2.11
},
namespaces: { "my.demo": "n" }
}
}';
$json = json_decode($str, true);
上面的代码没有返回数组。
发布于 2011-09-22 16:47:13
如果您在post中将JSON传递给json_decode
,它将失败。有效的JSON字符串具有带引号的键:
json_decode('{foo:"bar"}'); // this fails
json_decode('{"foo":"bar"}', true); // returns array("foo" => "bar")
json_decode('{"foo":"bar"}'); // returns an object, not an array.
发布于 2011-09-22 16:31:57
试试这个:
$data = json_decode($your_json_string, TRUE);
第二个参数会将解码后的json字符串转换为关联数组。
发布于 2013-01-28 12:42:47
如果要使用$_REQUEST
、$_GET
或$_POST
从表单中获取JSON字符串,则需要使用函数html_entity_decode()
。我没有意识到这一点,直到我对请求中的内容与我复制到echo
语句中的内容进行了var_dump
,并注意到请求字符串要长得多。
正确的方式:
$jsonText = $_REQUEST['myJSON'];
$decodedText = html_entity_decode($jsonText);
$myArray = json_decode($decodedText, true);
出现错误的:
$jsonText = $_REQUEST['myJSON'];
$myArray = json_decode($jsonText, true);
echo json_last_error(); //Returns 4 - Syntax error;
https://stackoverflow.com/questions/7511821
复制相似问题