>백엔드 개발 >PHP 문제 >PHP에서 JSON 문자열을 배열이나 객체로 변환하는 방법

PHP에서 JSON 문자열을 배열이나 객체로 변환하는 방법

PHPz
PHPz원래의
2023-04-20 10:12:07796검색

웹 개발을 위해 PHP를 사용할 때 JSON 데이터를 다루는 경우가 많습니다. 우리가 수신한 데이터가 문자열 형식의 JSON 데이터인 경우 후속 처리를 위해 이를 PHP의 객체나 배열로 변환해야 합니다. 이 글에서는 문자열 형태의 JSON 데이터를 객체나 배열로 변환하는 방법에 대해 설명합니다.

1. 문자열을 JSON 개체로 변환

먼저, JSON 문자열을 JSON 개체로 변환하려면 PHP의 json_decode() 함수를 사용해야 합니다. 이 함수의 구문은 다음과 같습니다. json_decode() 函数将 JSON 字符串转换为 JSON 对象。该函数的语法如下:

json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0): mixed

其中,$json 参数表示需要转换的 JSON 字符串;$assoc 参数表示是否将转换后的 JSON 对象转换为数组形式;$depth 参数表示最大递归深度;$options 参数表示转换时的选项。

示例代码如下:

$json_string = '{"name":"张三","age":18}';
$json_obj = json_decode($json_string);
var_dump($json_obj);

输出结果:

object(stdClass)#1 (2) {
  ["name"]=>
  string(6) "张三"
  ["age"]=>
  int(18)
}

如上所述,使用 json_decode() 函数将 JSON 字符串转换为 JSON 对象,返回的是 PHP 中的 stdClass 对象。

二、将字符串转换为 JSON 数组

假如我们需要将 JSON 字符串转换为 PHP 中的数组,可以将 $assoc 参数设置为 true。示例代码如下:

$json_string = '[{"name":"张三","age":18},{"name":"李四","age":20}]';
$json_arr = json_decode($json_string, true);
var_dump($json_arr);

输出结果:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(6) "张三"
    ["age"]=>
    int(18)
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(6) "李四"
    ["age"]=>
    int(20)
  }
}

从上述例子中可以看出,经过转换后,原本是 JSON 对象的数据,如 {"name":"张三","age":18},被转换为了 PHP 中的数组形式,如["name" => "张三", "age" => 18]

三、将字符串转换为 JSON 对象数组

在实际应用中,我们可能需要将由多个 JSON 对象组成的 JSON 字符串转换为 PHP 中的对象数组。

示例代码如下:

$json_string = '[{"name":"张三","age":18},{"name":"李四","age":20}]';
$json_obj_arr = json_decode($json_string);
var_dump($json_obj_arr);

输出结果:

array(2) {
  [0]=>
  object(stdClass)#2 (2) {
    ["name"]=>
    string(6) "张三"
    ["age"]=>
    int(18)
  }
  [1]=>
  object(stdClass)#3 (2) {
    ["name"]=>
    string(6) "李四"
    ["age"]=>
    int(20)
  }
}

相比于将 JSON 字符串转换为数组,转换为对象数组则是更复杂一些的操作。在此示例代码中,使用 json_decode() 函数将字符串转换为 JSON 对象数组。返回结果是一个由多个 stdClassrrreee

그 중 $json 매개변수는 변환해야 하는 JSON 문자열을 나타냅니다. 변환된 JSON 객체를 배열 형식으로 변환합니다. $length 매개변수는 최대 재귀 깊이를 나타냅니다. $options 매개변수는 변환 중 옵션을 나타냅니다.

샘플 코드는 다음과 같습니다. 🎜rrreee🎜출력 결과: 🎜rrreee🎜위에서 언급한 것처럼 json_decode() 함수를 사용하여 JSON 문자열을 JSON 객체로 변환하고, 를 반환합니다. >PHP의 stdClass 객체. 🎜🎜2. 문자열을 JSON 배열로 변환🎜🎜PHP에서 JSON 문자열을 배열로 변환해야 하는 경우 $assoc 매개변수를 true로 설정할 수 있습니다. 샘플 코드는 다음과 같습니다. 🎜rrreee🎜 출력 결과: 🎜rrreee🎜 위의 예에서 볼 수 있듯이 변환 후 데이터는 원래 {"name":"Zhang San"과 같은 JSON 개체입니다. ,"age": 18}["name" => "Zhang San", "age" => 18]과 같이 PHP에서 배열 형식으로 변환됩니다. 🎜🎜3. 문자열을 JSON 개체 배열로 변환🎜🎜실제 응용 프로그램에서는 여러 JSON 개체로 구성된 JSON 문자열을 PHP의 개체 배열로 변환해야 할 수도 있습니다. 🎜🎜샘플 코드는 다음과 같습니다. 🎜rrreee🎜출력 결과: 🎜rrreee🎜JSON 문자열을 배열로 변환하는 것에 비해 객체 배열로 변환하는 작업은 더 복잡합니다. 이 샘플 코드에서 json_decode() 함수는 문자열을 JSON 개체 배열로 변환하는 데 사용됩니다. 반환 결과는 여러 stdClass 개체로 구성된 배열입니다. 🎜🎜요약하자면 JSON 데이터 처리는 웹 개발 프로세스의 필수적인 부분입니다. 이 기사의 소개를 통해 PHP에서 JSON 문자열을 객체 또는 배열로 변환하는 방법과 여러 객체로 구성된 JSON 문자열을 PHP에서 객체 배열로 변환하는 방법을 배웠습니다. 🎜

위 내용은 PHP에서 JSON 문자열을 배열이나 객체로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.