>  기사  >  백엔드 개발  >  마샬링 및 역마샬링 시 json 키를 동적으로 변경합니다.

마샬링 및 역마샬링 시 json 키를 동적으로 변경합니다.

WBOY
WBOY앞으로
2024-02-11 09:30:091144검색

marshal 和 unmarshal 时动态更改 json key

PHP 편집기 Xiaoxin이 Marshal 및 Unmarshal 프로세스 중에 JSON 키 값을 동적으로 변경하는 방법을 소개합니다. JSON 데이터를 처리할 때 키 값을 수정하거나 교체해야 하는 경우가 있습니다. 이 기사에서는 개발자가 PHP에서 이러한 목표를 달성하는 데 도움이 되는 간단하면서도 효과적인 트릭을 공유합니다. 일부 특정 기능과 기술을 사용하면 JSON 데이터를 쉽게 조작하고 키 값을 동적으로 변경해야 하는 필요성을 충족할 수 있습니다. 다음으로, 편집자를 따라가서 이 실용적인 기술을 배워보세요!

질문 내용

동일한 개체(VAT 번호)에 대해 서로 다른 두 개의 키 또는 식별자가 있는 API를 사용해야 합니다. 호출이 GET인지 POST/PATCH인지에 따라 다릅니다

GET에서는 다음 구조를 사용하여 json을 역마샬링/디코딩해야 합니다.

으아악

POST 및 PATCH에서 다음 구조를 사용하여 데이터를 json으로 마샬링할 수 있습니다.

으아악

명백한 해결책은 내용은 동일하지만 JSON 키가 약간 다른 두 개의 "다른" 구조와 두 개의 변환 기능을 갖는 것입니다. 또는 구조에 Vat 및 VatIndentifier라는 두 개의 서로 다른 필드가 있습니다.

문제는 이미 복잡한 코드에 복잡성을 더한다는 것입니다.

그래서 알고 싶습니다:

상황에 따라 구조 내 Vat 필드의 JSON 키를 변경하는 방법(리플렉션과 유사)이 있나요?

해결 방법

구조체 태그를 포함하여 런타임에 유형 정의를 수정할 수 없습니다.

필드 유형과 순서(예: 메모리 레이아웃)가 동일하다면 변환 기능이 전혀 필요하지 않으며 직접 변환할 수 있습니다: https://go.dev/play/p/IhkVM- BMLiY

으아악

이것은 이러한 유형의 시나리오에 대한 일반적인 솔루션입니다.

위 내용은 마샬링 및 역마샬링 시 json 키를 동적으로 변경합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:동적 SQL 세트 Golang다음 기사:동적 SQL 세트 Golang