JSON

2017-02-21 10 views
0

のうち、オブジェクトのプロパティ値を取得します。私はこれが私に戻って取得しています:JSON

{ 
"GROUP_CONCAT(DISTINCT(CONCAT(\"MAX(IF(pa.printer = \"\"\", printer, \"\"\", pa.printer, NULL)) AS \", printer)))": 
"MAX(IF(pa.printer = \"JP4-3\", pa.printer, NULL)) AS JP4-3,MAX(IF(pa.printer = \"JP4-1\", pa.printer, NULL)) AS JP4-1,MAX(IF(pa.printer = \"JP4-2\", pa.printer, NULL)) AS JP4-2,MAX(IF(pa.printer = \"B3\", pa.printer, NULL)) AS B3,MAX(IF(pa.printer = \"A2\", pa.printer, NULL)) AS A2" 
    } 

私はこの値ではなく、単なる文字列を取得したいです。私は{}からそれを得ることはできません。これはとても単純なはずですがどこでも答えを見つけることはできません。 BELOW

は私が

をやっている主な目的は、MySQLのピボットテーブルであるものにJUST参照です。 2つのコールを取るが、私はそれでOKです。

$listQuery = PrintJob::select(DB::raw('GROUP_CONCAT(DISTINCT(CONCAT("MAX(IF(pa.printer = """, printer, """, pa.printer, NULL)) AS ", printer)))'))->get(); 

この

は、上記の結果を返して:
$json = $listQuery[0]; 

が続いて取得するためのいくつかの奇妙なものだ。このクエリ

$data = PrintJob::select(DB::raw('DATE(calendar.datefield) as date'), DB::raw('SUM(print_jobs.quantity) as sum'), DB::raw($listQuery)) 
       ->leftJoin('mo_numbers', 'mo_numbers.mo_id', '=', 'print_jobs.mo_id') 
       ->rightJoin('calendar', 'calendar.datefield', '=', 'print_jobs.job_date') 
       ->whereDate('calendar.datefield', '>=', date($from)) 
       ->whereDate('calendar.datefield', '<=', date($to)) 
       ->groupBy('date') 
       ->toSql(); 
       //->get(); 
+1

あなただけの文字列とはどういう意味ですか? – AbraCadaver

+0

の後の値: – BrinkDaDrink

+0

文字列の値を移動しました。私は2番目の行にして、それを明確にします。 – BrinkDaDrink

答えて

1

でそれを使用するつもりが、これは値を取得します。

$value = current(json_decode($json, true)); 

ge

$key = key(json_decode($json, true)); 

または1つの急襲で:キーをt

list($key, $val) = each(json_decode($json, true)); 
+0

これはうまくいきました。また、質問の編集に感謝します。 – BrinkDaDrink