PHP を使用して Shopware 6.5 で JSON キー コンテンツを置き換えて保存する方法
P粉306523969
P粉306523969 2023-09-09 23:36:03
0
2
455

私は Shopware プロジェクトに取り組んでおり、処理されたすべての注文を含む JSON を設定する必要があります。

この JSON は、私が見つけたディレクトリに保存され、変数 $fil に渡されます。

リーリー

取得した JSON は変数 $fil に格納され、変数 $jsonData に渡されます。

リーリー

JSON を連想配列にデコードして、以下のキーの値を置き換えようとしています。

リーリー

置き換えるキーは以下の通り(IDを置き換えてみてください)

リーリー

次に、それを変数 modifiedJsonData に保存し、ディレクトリに置き換えて戻してみました。

リーリー

(ID) を置き換えるだけではなく、部分的には機能するようですが、完全には機能しないようです。

以下に示すように: $data['entity']['payments'][0]['state']['id']

上記のコンテンツだけでなく、JSON コンテンツ全体を置き換えます。JSON コンテンツは次のコンテンツ以上である必要があります:

リーリー

助けてください、私が何か間違ったことをしたかもしれません

P粉306523969
P粉306523969

全員に返信(2)
P粉438918323

json_decode() を使用して JSON をデコードする場合は、$jsonData に正しい JSON テキストがあることを確認し、現在のシナリオでは 2 つのフラグを使用します。最初のフラグは常に使用され、2 番目のフラグはより具体的です。

  1. JSON_THROW_ON_ERROR
  2. JSON_BIGINT_AS_STRING
###例:### リーリー

(PHP 8.0以降)

リーリー

(PHP 7.3以降)

JSON_THROW_ON_ERROR

$data['entity']['payments'][0]['state']['id']

の JSON のみが表示される理由は、$data であるためです。 = 解析が失敗したため、json_decode(...) オペレーションは null を返しました。 JSON_THROW_ON_ERROR を使用すると、エラーが例外に変換され、エラーが発生したときにスクリプトの実行が停止されるため、発見が容易になります。 これにより、後続の出力でエラーを探す必要がなくなります。

JSON_BIGINT_AS_STRING

BIGINT は、

BigInt

(ECMA 262) を指します。これは、処理時に json_decode() が精度を失う可能性がある非常に大きな (負および正の) 整数を表す JavaScript の数値型です (3v4l. orgDemo): リーリー リーリー


参照
    Q&A「PHP に BigInteger クラスはありますか?」
  • https://www.php.net/manual/en/function.json-decode.php
  • https://www.php.net/manual/en/class.jsonException.php
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!