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"}
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.