[PHP] JSON モデル データを JSON データに置き換えます
{data:[{code:"Spot Gold",newPrice:"1662.3",hight:"0",low:"0",buy:"1662.3 ", sell:"r1663.3",zhang:"r4.75",date:"4:59:40",open:"0",close:"1657.55"}, {code:"Hong Kong Gold",newPrice : "15384"、高値:"0"、安値:"0"、購入:"15384"、販売:"r15390"、張:"r44"、日付:"2:59:55"、開始:"0" 、 close:"15340"}、{code:"スポットシルバー"、newPrice:"31.25"、高値:"0"、安値:"0"、買い:"31.25"、売り:"r31.31"、張: " r0.17",date:"4:56:10",open:"0",close:"31.08"}, {code:"スポットプラチナ",newPrice:"1566.75",hight:"0",low : "0",買い:"1566.75",売り:"r1576.75",張:"r2.01",日付:"3:29:35",オープン:"0",クローズ:"1564.74"}, {コード:"スポットパラジウム"、新価格:"677.23"、高値:"0"、安値:"0"、買:"677.23"、売:"r684.23"、張:"r9.54"、日付:" 3:29:35",open:"0",close:"667.69"}]}
皆さん、これは JSON データを持つモデルですが、キー名に引用符がありません。 , そのため、json_decode はそれを不正な JSON データ形式とみなします。次に、正規表現に置き換えて引用符を追加します。
/(?
皆さんに質問させてください。
-----解決策---------
<?php $json=<<<JSON {data:[{code:"スポット ゴールド",newPrice:"1662.3",hight:"0",low:"0",buy:"1662.3",sell:"r1663.3",zhang:"r4.75 ",date:"4:59:40",open:"0",close:"1657.55"}, {コード:"香港ゴールド",newPrice:"15384",hight:"0",low:"0 " 、購入:"15384"、販売:"r15390"、張:"r44"、日付:"2:59:55"、開始:"0"、終了:"15340"}、{コード:"スポット シルバー" 、新規価格:"31.25"、高値:"0"、安値:"0"、購入:"31.25"、販売:"r31.31"、張:"r0.17"、日付:"4:56:10" 、オープン:"0"、クローズ:"31.08"}、{コード:"スポット プラチナ"、新価格:"1566.75"、高値:"0"、低値:"0"、買い:"1566.75"、売り:"r1576 .75",zhang:"r2.01",date:"3:29:35",open:"0",close:"1564.74"}、{code:"スポットパラジウム"、newPrice:"677.23"、高さ:"0"、安値:"0"、買い:"677.23"、売り:"r684.23"、張:"r9.54"、日付:"3:29:35"、オープン:"0"、クローズ:"667.69"}]} JSON; $json=preg_replace_callback('/(,|,?s*?{)b(w+):/','callback',$json); print_r(json_decode($json,true)); 関数コールバック($v){ "{$v[1]}"{$v[2]}":" を返します。 } <br><font color="#e78608">------解決策---------</font><br>$json=preg_replace('/(,| , ?s*?{)b(w+):/', '$1"$2":',$json);<br>print_r(json_decode($json,true));<br> <br><font color="#e78608">------解決策---------</font><br>それでもボスは強力です<br> 2 階 ダウンロードしてください ({|,)([^:s]*)(?=:)