json 대상 과 문자열, 배열 간 의 변환

3312 단어
json 대상 과 문자열, 배열 간 의 변환
JS 중:
json 형식 문자열 json 대상 으로 전환 (strJSON 대표 json 문자열)
var obj = eval(strJSON); 

var obj = strJSON.parseJSON(); 

var obj = JSON.parse(strJSON); 


json 대상 에서 json 형식 문자열 로 전환 (obj 는 json 대상 을 대표 합 니 다)
var str = obj.toJSONString(); //     json.js 、       
var str = JSON.stringify(obj) 


사용 할 때 eval () 을 제외 하고 다른 것 은 모두 json. js 가방 을 도입 해 야 합 니 다. 기억 하 세 요!!!
PHP 에서:
1、json_encode():
1.1, php 배열 을 json 문자열 로 변환
  • 색인 배열
    $arr = Array('one', 'two', 'three');
    echo json_encode($arr);
    
    
    출력
    ["one","two","three"]
    
    
  • 관련 배열:
    $arr = Array('1'=>'one', '2'=>'two', '3'=>'three');
    echo json_encode($arr);
    
    
    출력
    {"1":"one","2":"two","3":"three"}
    
    
  • 1.2, php 클래스 를 json 문자열 로 변환
    class Foo {
         const     ERROR_CODE = '404';
         public    $public_ex = 'this is public';
         private   $private_ex = 'this is private!';
       protected $protected_ex = 'this should be protected';
         public function getErrorCode() {
                return self::ERROR_CODE;
         }
    }
    
    

    현재, 이 종류의 실례 를 json 변환 합 니 다.
    $foo = new Foo;
    
    $foo_json = json_encode($foo);
    
    echo $foo_json;
    
    

    출력 결 과 는?
    {"public_ex":"this is public"}
    
    

    2、json_decode (): json 텍스트 를 해당 하 는 PHP 데이터 구조 로 변환 합 니 다.
    2.1 일반적인 상황 에서 jsondecode () 는 배열 대신 항상 PHP 대상 을 되 돌려 줍 니 다. 예 를 들 어:
    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    var_dump(json_decode($json));
    
    

    결 과 는 PHP 대상 생 성:
    object(stdClass)#1 (5) {
         ["a"] => int(1) 
         ["b"] => int(2)
         ["c"] => int(3)
         ["d"] => int(4) 
         ["e"] => int(5)
     }
    
    

    2.2 PHP 관련 배열 을 강제로 생 성 하려 면 jsondecode () 는 인자 true 를 추가 해 야 합 니 다.
    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    var_dump(json_decode($json,true));
    
    

    결 과 는 관련 배열 을 만 들 었 습 니 다:
    array(5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }
    
    

    3、json_decode () 의 일반적인 오류
    다음 세 가지 제 이 슨 은 모두 틀 렸 다.
    $bad_json = "{ 'bar': 'baz' }";
    
    $bad_json = '{ bar: "baz" }';
    
    $bad_json = '{ "bar": "baz", }';
    
    

    이 세 문자열 에 json 을 실행 합 니 다.decode () 는 모두 null 로 돌아 가 잘못 보고 합 니 다.
    첫 번 째 오 류 는 json 의 구분자 (delimiter) 는 작은 따옴표 만 사용 할 수 있 고 작은 따옴표 만 사용 할 수 없습니다.
    두 번 째 오 류 는 json 이름 값 이 맞 는 '이름' (가짜 왼쪽 부분) 입 니 다. 어떤 경우 에 도 작은 따옴표 를 사용 해 야 합 니 다.
    세 번 째 오 류 는 마지막 값 이후 에 쉼표 (trailing coma) 를 추가 할 수 없습니다.
    또한, json 은 대상 (object) 과 배열 (array) 만 표시 할 수 있 으 며, 문자열 이나 수치 에 json 을 사용 하면decode (), null 로 돌아 갑 니 다.
    var_dump(json_decode("Hello World")); //null
    

    좋은 웹페이지 즐겨찾기