현재 위치: > 최신 기사 목록> JSON 데이터의 필드 이름을 교체하십시오

JSON 데이터의 필드 이름을 교체하십시오

M66 2025-06-02

PHP에서 JSON 데이터를 처리 할 때 때때로 필드 이름을 교체해야합니다. 일반적으로 사용되는 방법은 JSON을 배열로 디코딩 한 다음 처리하는 다음 일부 시나리오에서는 JSON 문자열의 필드 이름을 일반 표현식으로 직접 대체하는 것이 더 빠릅니다. 이 기사에서는 PHP의 MB_EREGI_REPLACE 기능을 사용하여 JSON 데이터의 필드 이름을 대체하는 방법을 자세히 설명하고 샘플 코드로 설명합니다.


mb_eregi_replace 란 무엇입니까?

MB_EREGI_REPLACE 는 PHP Multi-Byte String Function Library (MBString)에서 정기적 인 교체 함수입니다. 문자열의 사례에 민감한 정기적 인 교체를 지원하고 다중 바이트 문자 인코딩을 지원하는데, 이는 중국어와 같은 다중 바이트 문자를 포함하는 문자열을 처리하는 데 적합합니다.

기능 프로토 타입 :

 string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
  • $ 패턴 : 일치하는 정규 표현 패턴 (Case Insensitive)

  • $ 교체 : 교체 문자열

  • $ 문자열 : 입력 된 문자열

  • $ 옵션 : 옵션 매개 변수, 일반적으로 기본값을 사용하여 일치 동작을 지정합니다.


JSON 필드 이름을 MB_EREGI_REPLACE으로 바꾸는 이유는 무엇입니까?

  • JSON 문자열 필드 이름은 일반적으로 이중 인용문으로 래핑되며 직접 문자열을 대체 할 때 실수를 쉽게 할 수 있습니다.

  • MB_EREGI_REPLAPE는 다중 바이트를 지원하며 다양한 인코딩 형식으로 JSON과 호환됩니다.

  • 교체가 누락 된 경우 사례 차이를 피하기 위해 사례 insensitive 교체를 지원합니다.

  • 간단한 필드 이름 교체 시나리오에 적합하므로 먼저 JSON을 구문 분석 할 필요가 없습니다.


JSON 필드 이름을 대체하기위한 아이디어

다음 JSON 문자열이 있다고 가정합니다.

 {
  "UserName": "장 산",
  "UserAge": 28,
  "UserEmail": "zhangsan@example.com"
}

모든 필드 이름의 "사용자"를 "멤버"로 바꾸고 싶습니다. 작동 단계 :

  1. 예를 들어 "사용자 이름"사용자 이름 과 일치하려면 정규 일치 필드 이름 부분을 사용하십시오.

  2. 일치하는 필드 이름을 대체하려면 mb_eregi_replace를 사용하십시오.

  3. 새 JSON 문자열을 출력하십시오.


샘플 코드

 <?php
// 원래의 JSON 끈
$json = '{"UserName":"장 산","UserAge":28,"UserEmail":"zhangsan@m66.net"}';

// 교체 규칙을 정의하십시오,필드 이름을 접두사합니다 "User" 대체하십시오 "Member"
// 정규 표현식은 이중 인용문과 일치합니다 User 처음에 필드 이름,필드의 후반을 포착하십시오
$pattern = '"User([a-zA-Z0-9_]*)"';

// 替换끈,할 것이다 User 대체하십시오 Member,접미사를 변경하지 않도록하십시오
$replacement = '"Member\\1"';

// 사용 mb_eregi_replace 교체하십시오
$newJson = mb_eregi_replace($pattern, $replacement, $json);

// 출력이 교체됩니다 JSON 끈
echo $newJson;
?>

실행 결과

 {"MemberName":"장 산","MemberAge":28,"MemberEmail":"zhangsan@m66.net"}

분석 지침

  • 정규 표현식 ' "사용자 ([A-Za-Z0-9 _]*)는 "사용자 "로 시작하는 모든 필드 이름과 이중 인용문으로 일치합니다.

  • 캡처 그룹 ([a-za-z0-9 _]*) 를 사용하여 필드 이름의 나머지 부분을 얻으십시오.

  • "member \\ 1"을 사용하여 "사용자"를 "멤버"로 바꾸고 필드 이름 접미사를 유지하십시오.

  • 그렇게하면 필드의 해당 값에 영향을 미치지 않습니다.

  • JSON에 나타나는 URL 도메인 이름은 요구 사항을 충족시키기 위해 M66.NET 으로 대체되었습니다.


주목해야 할 것

  • 이 방법은 간단한 필드 이름 구조와 표준화 된 형식의 JSON에만 적합합니다.

  • JSON 문자열에 복잡한 중첩 구조가 포함 된 경우 먼저 JSON_DECODE 로 디코딩하는 것이 좋습니다. 그런 다음 필드 이름을 배열 작업으로 바꾸고 마지막으로 json_encode 와 함께 새 JSON을 생성하는 것이 좋습니다.

  • MB_EREGI_REPLACE는 어설 션과 같은 복잡한 일반 구문을 지원하지 않습니다. 교체 요구 사항이 복잡한 경우 PCRE 기능 또는 JSON 해상도 체계를 선택하십시오.