programing

json_array에 추가

copysource 2022. 10. 31. 23:32
반응형

json_array에 추가

JSON 문자열을 배열로 디코딩하려고 하는데 다음 오류가 나타납니다.

치명적인 오류: C:\wamp\www\temp\asklaila에서 stdClass 유형의 개체를 배열로 사용할 수 없습니다.6행의 php

코드는 다음과 같습니다.

<?php
$json_string = 'http://www.domain.com/jsondata.json';

$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
?>

설명서에 따라 다음 항목을 지정해야 합니다.true두 번째 인수로 오브젝트 대신 관련 배열을 원하는 경우json_decode코드는 다음과 같습니다.

$result = json_decode($jsondata, true);

네가 원한다면integer속성 이름이 무엇이든 간에 키를 누릅니다.

$result = array_values(json_decode($jsondata, true));

그러나 현재 디코딩에서는 개체로 액세스하기만 하면 됩니다.

print_r($obj->Result);

이거 먹어봐

$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata,true);
echo "<pre>";
print_r($obj);

이것은 늦은 기고이지만, 캐스팅을 위한 유효한 사례가 있습니다.json_decode와 함께(array).
다음 사항을 고려하십시오.

$jsondata = '';
$arr = json_decode($jsondata, true);
foreach ($arr as $k=>$v){
    echo $v; // etc.
}

한다면$jsondata(내 경험상 종종 그렇듯이) 빈 문자열로 반환되는 경우가 있다.json_decode돌아온다NULL에러가 발생합니다.경고: 3행의 foreach()에 대해 잘못된 인수가 지정되었습니다.if/the code 또는 ternary 연산자를 추가할 수 있지만 IMO는 단순히 2줄을 ...로 변경하는 것이 더 명확합니다.

$arr = (array) json_decode($jsondata,true);

...당신이 아니라면json_decode@TCB13에서 지적했듯이 퍼포먼스에 악영향을 미칠 수 있습니다.

만약 당신이 5.2보다 작은 php로 작업하고 있다면 이 리소스를 사용할 수 있습니다.

http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/

http://mike.teczno.com/JSON/JSON.phps

PHP 설명서에 따르면 json_decode함수에는 반환된 개체를 연관 배열로 변환하는 assoc라는 매개 변수가 있습니다.

 mixed json_decode ( string $json [, bool $assoc = FALSE ] )

assoc 파라미터는FALSE기본적으로는 이 값을 다음과 같이 설정해야 합니다.TRUE어레이를 취득하기 위해서입니다.

다음 코드를 조사하여 시사하는 예를 확인하십시오.

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));

출력:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

이렇게 하면 어레이로 변경됩니다.

<?php
    print_r((array) json_decode($object));
?>
json_decode($data, true); // Returns data in array format 

json_decode($data); // Returns collections 

따라서 어레이가 필요한 경우 두 번째 인수를 true로 전달할 수 있습니다.json_decode기능.

json_decodesupport second 인수를 지원합니다.TRUE이 경우, 반환됩니다.Array대신stdClass Object의 [Manual]페이지를 확인합니다.json_decode지원되는 모든 인수와 그 세부사항을 표시하는 함수입니다.

예를 들어 다음과 같습니다.

$json_string = 'http://www.example.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata, TRUE); // Set second argument as TRUE
print_r($obj['Result']); // Now this will works!

이게 도움이 됐으면 좋겠다

$json_ps = '{"courseList":[  
            {"course":"1", "course_data1":"Computer Systems(Networks)"},  
            {"course":"2", "course_data2":"Audio and Music Technology"},  
            {"course":"3", "course_data3":"MBA Digital Marketing"}  
        ]}';

Json 디코드 기능 사용

$json_pss = json_decode($json_ps, true);

php의 JSON 어레이를 통한 루프

foreach($json_pss['courseList'] as $pss_json)
{

    echo '<br>' .$course_data1 = $pss_json['course_data1']; exit; 

}

결과: 컴퓨터 시스템(네트워크)

PHP json_decode에서 json 데이터를 PHP 관련 배열로 변환합니다.
예:$php-array= json_decode($json-data, true); print_r($php-array);

이거 드셔보세요

<?php
$json_string = 'http://www.domain.com/jsondata.json';

$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata, true);
echo "<pre>"; print_r($obj['Result']);
?>

다음과 같이 시도합니다.

$json_string = 'https://example.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj->Result);
foreach($obj->Result as $value){
  echo $value->id; //change accordingly
}

언급URL : https://stackoverflow.com/questions/5164404/json-decode-to-array

반응형