2016-11-29 20 views
0

ように私は私がvar_dump場合のように出力が見えます、いくつかのJSONを持っています。取得PHPのプロパティ名は、文字列

私はそれをキャストしようとしました:

(string)$oJSON->{$oQ->sQuestionName} 

が、それはE_RECOVERABLEを返します。

E_RECOVERABLE_ERROR Error: Object of class stdClass could not be converted to string 

以下の作品は、しかし、私はより良い方法がなければならないと感じ?

array_shift(array_values(array_keys(get_object_vars($oJSON->{$oQ->sQuestionName})))); 

N.B.私は

array_keys(get_object_vars($oJSON->{$oQ->sQuestionName}))[0] 
+1

*私は互換性の問題のために以下を使用することはできません*ちょうど2行に分割します。 – Rizier123

+0

ええ、私はそれを行うことができます。 varに割り当て、最初のposに移動します。しかし、他の方法がなければならないと感じていますか? – atoms

答えて

1

ReflectionClass::getProperties()を使用して、オブジェクトのプロパティのリストを取得します。

$reflect = new ReflectionClass($foo); 
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED); 
+0

はすばらしく、興味深い読書もあまりにも盛り上がります! – atoms

1

あなたは

$array = (array) $oJSON->{$oQ->sQuestionName}; 

は、その後、あなたがその最初の要素のキー

echo key($array); // Should say Lease 
を取ることができます最初の配列にご希望のオブジェクトを変換することができます互換性の問題に、次の原因を使用するために使用することはできません

Fiddle

0

あなたは、例えば、第二引数true

json_decodeを使用することができます。

$str = '{"0":{"id":"123","name":"Title"}}'; 
var_dump(json_decode($str,true)); 

だから、あなたは、文字列オブジェクトの配列を持つことになります。

関連する問題