2014-03-04 129 views
2

我試圖用bash中的PHP解析JSON對象。在bash中用PHP解析JSON對象

{ 
    "department": { 
     "name": "MyDepartment", 
     "emp_no": 10 
    } 
} 

而且

#!/bin/sh 
key=department->name 
jsonbody=./object.json 

value=$(php -r "\$obj = json_decode(utf8_encode(file_get_contents('$jsonbody')));print \$obj->'$key';") 

我得到了如下的錯誤消息。如何使用bash變量處理JSON對象?

PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or '{' or '$' in Command line code on line 1 

回答

0

這解決了它:

#!/bin/sh 
key='department->name' # or key="department->name" 
jsonbody=./object.json 

value=$(php -r "\$obj = json_decode(utf8_encode(file_get_contents('$jsonbody')));print \$obj->$key;") 
# $key, not '$key' 

echo $value