猿问

如何将JSON字符串转换为数组

如何将JSON字符串转换为数组

我想做的是:

  1. 在php中以JSON作为文本区域的输入
  2. 使用此输入并将其转换为JSON,并将其传递给php curl以发送请求。

这是从api的get of api获取到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);

上面的代码没有返回Me数组。


慕森王
浏览 2674回答 3
3回答

BIG阳

    如果您将帖子中的JSON传递给json_decode它会失败的。有效的JSON字符串有引号键:json_decode('{foo:"bar"}');         // this failsjson_decode('{"foo":"bar"}', true); // returns array("foo" => "bar")json_decode('{"foo":"bar"}');       // returns an object, not an array.

郎朗坤

试试这个:$data = json_decode($your_json_string, TRUE);第二个参数将使解码后的json字符串成为关联数组。

有只小跳蛙

如果要从表单中获取JSON字符串,请使用$_REQUEST, $_GET,或$_POST您将需要使用该函数。html_entity_decode()..我没有意识到这一点直到我做了一个var_dump请求中的内容和我复制的内容echo语句并注意到请求字符串要大得多。正确方式:$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;
随时随地看视频慕课网APP
我要回答