最近私が作成した古いアプリケーションにAngularを追加し始めました。アプリケーションの一部は、mySqlテーブルの単一のセルにjsonでエンコードされた配列を格納します。私はこれが怒られていることを知っていますが、私は100%後で私をかむために戻ってこないと確信しています。過去に私はちょうど配列のjson_decodeを実行し、値を順序付けられたリストに出力できました。 Angularをインクルードしたので、データはPHPファイルの最後にエンコードされエコーされています。その後、角度コードによってピックアップされて、私はng-repeatを使用して、文字列のようにフォーマットされた配列をループします。
"sub_items":"[\"subOne\",\"subTwo\",\"subThree\"]"
私が得ることができる最も近い出力にすべてを含む文字列です...それはこの部分に到達するまで、この深くネストされた多次元オブジェクトを介してループすることができますよ文字列であるので意味をなすバックスラッシュ、大括弧および引用符。
sub_itemsのすべてのインスタンスでjson_decodeを実行しようとしましたが、動作しません。私はそれがすべてがちょうど再度コード化されるためだと思う。
この配列をどのようにループすることができますか?私は@YaserアデルMehrabanからの回答のコメントに基づいて、次のといくつかの進歩を遂げている
EDIT
。
foreach($master as $index => $item) {
if($category == $item['category']) {
$sub = [];
$sub['sub_items'] = json_decode($item['sub_items']);
unset($item['sub_items']);
array_push($items, $item, $sub);
}
}
これは
...created_at":"2016-11-01 14:19:07"},{"sub_items":["subOne","subTwo","subThree"...
私は正しいが、今私が考えているとのトラブルを抱えていた配列のフォーマットを返しますが、それはアイテムの外に座っています。私はarray_mergeも試してみましたが、不要なng-repeatが強制的に新しいキーを追加して、私が思うようにステップダウンしました。提案...
あなたは試しましたか? jsonパイプ? –
あなたが表示しているものは、arrayオプションがtrueに設定されたjson_decode()を使ってうまくデコードする必要があります。アレイ/オブジェクト全体の深さはどれくらいですか? – charlietfl
Stringオブジェクトを分割し、JSON.parse( "[\" subOne \ "、\" subTwo \ "、\" subThree \ "]")を使用して配列 –