>  기사  >  백엔드 개발  >  키가 없을 때 PATCH 부분 업데이트 처리

키가 없을 때 PATCH 부분 업데이트 처리

王林
王林앞으로
2024-02-09 15:39:18819검색

当密钥不存在时处理 PATCH 部分更新

Apple의 PHP 편집기는 일부 업데이트를 처리할 때 키가 존재하지 않는 문제를 여러분과 공유하기 위해 왔습니다. PATCH 요청을 할 때 키가 존재하지 않는 상황이 발생하는 경우가 있습니다. 그렇다면 우리는 어떻게 대처해야 할까요? 이 글에서는 이 상황을 더 잘 처리하고 시스템의 정상적인 작동을 보장하기 위해 이 문제를 해결하는 방법과 단계를 자세히 소개합니다. 한 번 보자!

질문 내용

이 문제를 해결하는 방법을 찾으려고 노력 중입니다.

저는 user 结构,上面有一些字段。但是,当为 patch 用户调用解码 json 对象时,缺少键会导致值设置为 *nil。对应的数据库属性是 text null 유형을 가지고 있으므로 키가 누락되면 결과는 항상 null로 저장됩니다.

으아악

imageurl nil일 수 있지만 객체가 클라이언트에서 전송되는 경우:

으아악

이것은 imageurl = nil,因为 json 中不存在 imageurl이 json에 존재하지 않기 때문에

= nil로 디코딩됩니다.

map[string]struct{} 而不是我的 dto 检查每个字段是否存在的情况下处理部分更新?

解决方法

您可以实现自定义json.unmarshaler来确定是否该字段被完全省略,已提供但其值为 null각 필드가 존재하는지 확인하는 dto 대신 map[string]struct{}를 사용하지 않고 부분 업데이트를 어떻게 처리할 수 있나요?

Solution사용자 정의 json.unmarshaler

를 구현하여 필드가 완전히 생략되었거나 제공되었지만 해당 값이 null이거나 null이 아닌 값이 제공되었습니다.

으아악 으아악 https://www.php.cn/link/22f791da07b0d8a2504c2537c560001c json.decoder (由 json.unmarshal사용자 정의 유형이 필요하지 않은 또 다른 방법은 json을

비마샬링

하기 전에 go 필드의 값을 현재 데이터베이스 열의 값으로 설정하는 것입니다. 들어오는 json에 일치하는 필드가 없으면

)을 사용하면 대상 필드를 "접촉"하지 않습니다. 🎜 으아악 🎜🎜https://www.php.cn/link/cdf49f5251e7b3eb4f009483121e9b64🎜🎜

위 내용은 키가 없을 때 PATCH 부분 업데이트 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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