PHP를 사용하여 Shopware 6.5에서 JSON 키 콘텐츠를 교체하고 저장하는 방법
P粉306523969
P粉306523969 2023-09-09 23:36:03
0
2
650

저는 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粉762730205

다음 방법으로 우회할 수도 있습니다.

으아악
P粉438918323

json_decode()를 사용하여 JSON을 디코딩할 때 $jsonData에 올바른 JSON 텍스트가 있는지 확인하고 현재 시나리오에서 두 개의 플래그를 사용하십시오. 첫 번째 플래그는 항상 사용되고 두 번째 플래그는 더 구체적입니다.

  1. JSON_THROW_ON_ERROR
  2. JSON_BIGINT_AS_STRING

예:

으아악

(PHP 8.0부터)

으아악

(PHP 7.3부터)

JSON_THROW_ON_ERROR

$data['entity']['결제'][0]['state']['id']의 JSON만 보이는 이유는 $data = json_decode 구문 분석이 실패했기 때문에 (...) 작업에서 null을 반환했습니다. $data['entity']['payments'][0]['state']['id']的JSON,是因为$data = json_decode(...)操作返回了null,因为解析失败。使用JSON_THROW_ON_ERROR를 사용하면 오류가 발생하면 스크립트 실행이 중지되므로 오류를 더 쉽게 발견할 수 있는 예외로 변환됩니다.

이렇게 하면 후속 출력에서 ​​오류를 찾는 것을 방지할 수 있습니다.

JSON_BIGINT_AS_STRING

BIGINT는 BigInt(ECMA 262)를 참조합니다. 이는 매우 큰(음수 및 양수) 정수에 대한 JavaScript의 숫자 값 유형으로, json_decode()가 처리 시 정밀도를 잃을 수 있습니다(3v4l.org 데모 ).

으아악 으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!