首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将JSON字符串转换为数组

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

Stack Overflow用户
提问于 2011-09-22 16:27:48
回答 17查看 548.2K关注 0票数 145

我想做的是:

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

这是从api的get获取php我想要传递给json的这个json字符串,但它没有转换为数组。

代码语言:javascript
复制
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);

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

EN

回答 17

Stack Overflow用户

发布于 2011-09-22 16:47:13

如果您在post中将JSON传递给json_decode,它将失败。有效的JSON字符串具有带引号的键:

代码语言:javascript
复制
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.
票数 211
EN

Stack Overflow用户

发布于 2011-09-22 16:31:57

试试这个:

代码语言:javascript
复制
$data = json_decode($your_json_string, TRUE);

第二个参数会将解码后的json字符串转换为关联数组。

票数 125
EN

Stack Overflow用户

发布于 2013-01-28 12:42:47

如果要使用$_REQUEST$_GET$_POST从表单中获取JSON字符串,则需要使用函数html_entity_decode()。我没有意识到这一点,直到我对请求中的内容与我复制到echo语句中的内容进行了var_dump,并注意到请求字符串要长得多。

正确的方式:

代码语言:javascript
复制
$jsonText = $_REQUEST['myJSON'];
$decodedText = html_entity_decode($jsonText);
$myArray = json_decode($decodedText, true);

出现错误的

代码语言:javascript
复制
$jsonText = $_REQUEST['myJSON'];
$myArray = json_decode($jsonText, true);
echo json_last_error(); //Returns 4 - Syntax error;
票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7511821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档