首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试分析JSON数组时获取未定义的属性: stdClass::$insertion

尝试分析JSON数组时获取未定义的属性: stdClass::$insertion
EN

Stack Overflow用户
提问于 2013-07-11 04:18:04
回答 1查看 2.3K关注 0票数 0

我有这个json,我尝试在它上面提取插入顺序数组。

代码语言:javascript
复制
{
    "response" : {
        "status" : "OK",
        "count" : 1,
        "insertion-orders" : [{
                "id" : 5,
                "name" : "First Choice",
                "code" : null,
                "state" : "active",
                "line_items" : [{
                        "id" :352,
                        "timezone" : "Europe/London"
                    }, {
                        "id" :358,
                        "timezone" : "Europe/London"
                    }
                ],
                "labels" : null,
                "safety_pacing" : true
            }
        ]
    }
}

我所做的是TheJson是json字符串:

代码语言:javascript
复制
$Json = json_decode($TheJson);
$JsonResponse = $Json->response;
$OrdersArray = $JsonResponse->insertion-orders;

我得到的错误是:

代码语言:javascript
复制
Notice: Undefined property: stdClass::$insertion in /home/foo/a/foo.com/user/htdocs/FunctionManager.php on line 16

Notice: Use of undefined constant orders - assumed 'orders' in /home/foo/a/foo.com/user/htdocs/FunctionManager.php on line 16

第16行是:

代码语言:javascript
复制
 $OrdersArray = $JsonResponse->insertion-orders;

我就是不明白,它是有效的json

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-11 04:20:17

代码语言:javascript
复制
$JsonResponse->insertion-orders;

被解析为

代码语言:javascript
复制
$JSonResponse->insert MINUS orders

不能使用箭头表示法在对象属性名称中使用-。它必须是

代码语言:javascript
复制
$JsonResponse->{'insertion-orders'}

而不是。

至于你关于它是有效的JSON的评论,它在Javascript中也不会工作:

代码语言:javascript
复制
json.insertion-orders 

也将被视为json.insertion MINUS orders

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17580131

复制
相关文章

相似问题

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