如何在标识符以@符号开头时访问php中的对象?
问题描述:
我有一个JSON对象,看起来像这样:如何在标识符以@符号开头时访问php中的对象?
{#119130 ▼
+"@id": "1EBEF5DA"
+"@name": "The"
+"@renewal": "xxxxx"
+"@languages": "Eng"
}
如何访问一个PHP中的JSON数据时标识符与@
符号开始?
例如试图在一个错误使用$var->@id
结果来访问它:
Parse error: syntax error, unexpected '@', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'
我试图$var->id
但它导致Undefined Property
。
答
保持元素名称像$test
一个变量和使用$var->$test
得到这样
<?php
$arr = json_decode(json_encode(["@id"=> "1EBEF5DA"]));
$obj = '@id';
print_r($arr->$obj);
?>
或者另一种方式是print_r($arr->{'@id'});
+0
谢谢@ user2486。 '$ arr - > {'@ id'}'解决了我的问题。 – kevinabraham
答
试试像这样:
$idFieldName = '@id';
$var->$idFieldName;
答
使用此:
$a = '{"@id":"123","@idx":"2232"}';
$b = json_decode($a);
print_r($b);
echo $b->{'@id'};
您可以尝试通过'$ VAR [ '@身份证']'访问它。如果这有效,我会将它添加为您的答案。 – cramopy
为什么json属性的前缀是“@”?这并非无效,但有什么意义? – Gordon
@戈登不知道为什么客户开发人员这样做。这只是我从客户端服务器获得的响应,并且应该处理它。 – kevinabraham