이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

jsonencode

구조화된 MATLAB 데이터에서 JSON 형식의 텍스트 생성

구문

text = jsonencode(data)
text = jsonencode(data,'ConvertInfAndNaN',TF)

설명

예제

text = jsonencode(data)data를 인코딩하고 문자형 벡터를 JSON 형식으로 반환합니다.

text = jsonencode(data,'ConvertInfAndNaN',TF)은 특수 부동소수점 값 NaN, Inf, -Inf의 인코딩을 사용자 지정합니다.

예제

모두 축소

value = {'one'; 'two'; 'three'};
jsonencode(value)
ans = 
'["one","two","three"]'

입력 인수

모두 축소

MATLAB 데이터로, 지원되는 임의의 MATLAB 데이터형으로 지정됩니다. 자세한 내용은 제한 사항 항목을 참조하십시오.

예: s.IDs = [116, 943, 234, 38793]

특수 부동소수점 값 NaN, Inf, -Inf의 인코딩을 사용자 지정하는 것으로, true 또는 false로 지정됩니다. true 값은 이런 부동소수점 값을 null로 인코딩합니다. false 값은 값을 리터럴 NaN, Infinity, -Infinity 중 하나로 인코딩합니다.

예: jsonencode(-Inf,'ConvertInfAndNaN',false)

출력 인수

모두 축소

JSON 형식 텍스트로, 문자형 벡터로 반환됩니다.

제한 사항

  • jsonencode는 복소수 숫자, 희소 배열 또는 MATLAB 열거형을 지원하지 않습니다. 객체는 객체 속성에 정의된 get 메서드를 사용하여 이름-값 쌍으로 인코딩된 퍼블릭 속성을 가져야 합니다.

  • jsonencode는 상위(부모) 객체와 하위(자식) 객체에 대한 참조가 들어 있는 그래픽스 객체와 같은 재귀적 구조체를 지원하지 않습니다.

  • 어떤 값을 인코딩한 후 디코딩하는 경우 MATLAB이 그 데이터형을 유지한다는 보장은 없습니다. JSON은 MATLAB보다 지원하는 데이터형 개수가 적기 때문에, 데이터형 정보가 손실됩니다. 예를 들어, JSON 데이터는 double형과 int32형을 구분하지 않습니다. int32형 값을 인코딩한 다음 jsondecode를 호출하는 경우, 디코딩된 값은 double형입니다.

  • MATLAB이 배열의 형태를 그대로 보존한다는 보장은 없습니다. 예를 들어, 1xN 숫자형 벡터는 배열로 인코딩됩니다. jsondecode를 호출하는 경우 MATLAB은 이 배열을 Nx1 벡터로 디코딩합니다.

  • 새 줄 이스케이프 문자 \n을 유지하려면 newline 함수를 사용하십시오.

    jsonencode(['one' newline 'two'])
    ans = '"one\ntwo"'
  • 다른 \ 이스케이프 문자를 유지하려면 입력값에 대해 sprintf를 호출하십시오. sprintf가 원하는 결과를 만드는지 입력값을 테스트합니다.

    jsonencode(sprintf('AB\tCD'))
    ans = '"AB\tCD"'
  • 입력값에 큰따옴표 "가 포함되어 있으면 함수가 \ 이스케이프 문자를 삽입합니다.

    jsonencode('one"two')
    ans = '"one\"two"'

알고리즘

JSON은 MATLAB보다 지원하는 데이터형 개수가 적습니다. jsonencode는 MATLAB 데이터형을 아래에 나열된 JSON 데이터형으로 변환합니다.

MATLAB 데이터형

JSON 데이터형

예제

출력값

배열, 비어 있음

배열, 비어 있음

jsonencode([])
jsonencode(string.empty)
'[]'

논리형 스칼라

부울

jsonencode(true)
'true'

논리형 벡터

부울로 구성된 배열

jsonencode([true,false,false])
'[true,false,false]'

논리형 배열

부울로 구성된 중첩 배열

jsonencode(logical([0,1,0,1,1,0]))
'[false,true,false,true,true,false]'

문자형 벡터

문자열

jsonencode('This is a char.')
'"This is a char."'

문자형 배열

문자열로 구성된 배열

jsonencode(['AC';'EG'])
'["AC","EG"]'

string형 스칼라

문자열

jsonencode("This is a string.")
'"This is a string."'

string형 벡터

문자열로 구성된 배열

jsonencode(["AC";"EG"])
'["AC","EG"]'

string형 배열

문자열로 구성된 중첩 배열

jsonencode(["AC","EG";"BD","FH"])
'[["AC","EG"],["BD","FH"]]'

빈 문자형 벡터

문자열

jsonencode('')
'""'

<missing>

null

jsonencode(string(nan))
'null'

숫자형 스칼라

숫자

jsonencode(2.5)
'2.5'

숫자형 벡터

숫자로 구성된 배열

jsonencode(1:3)
'[1,2,3]'

숫자형 배열

숫자로 구성된 중첩 배열

jsonencode(eye(2))
'[[1,0],[0,1]]'

복소수

지원 안 됨

  

테이블

객체로 구성된 배열

Name = {'Jones';'Brown'};
Age = [40;49];
jsonencode(table(Name,Age))
'[{"Name":"Jones","Age":40},{"Name":"Brown","Age":49}]'

셀형 스칼라

요소 1개로 구성된 배열

jsonencode({5})
'[5]'

셀형 벡터

배열

jsonencode({'a',true,[2;3]})
'["a",true,[2,3]]'

셀형 배열

차원 하나로 나열된 배열

jsonencode({1 2;3 4})
'[1,3,2,4]'

구조체형 스칼라
객체 스칼라

객체
객체(퍼블릭 속성은 name-value 쌍으로 인코딩됨)

jsonencode(struct('a','value'))
'{"a":"value"}'

구조체형 벡터
객체 벡터

객체로 구성된 배열

jsonencode(struct('a',{true,true,false}))
'[{"a":true},{"a":true},{"a":false}]'

구조체형 배열
객체 배열

객체로 구성된 중첩 배열

  

datetime형 스칼라

문자열(string 메서드는 날짜/시간을 문자열 형식으로 변환하는 데 사용됨)

jsonencode(datetime('tomorrow'))
'"04-Nov-2016"'

datetime형 벡터

문자열로 구성된 배열

  

datetime형 배열

문자열로 구성된 중첩 배열

DT = datetime({'8 April 2015','9 May 2015'}, ...
    'InputFormat','d MMMM yyyy');
jsonencode(DT)
'["08-Apr-2015","09-May-2015"]'

categorical형 스칼라

문자열(string 메서드는 문자열 형식을 만드는 데 사용됨)

jsonencode(categorical({'r';'g';'b'}))
'["r","g","b"]'

categorical형 벡터

문자열로 구성된 배열

jsonencode(categorical( ...
    {'r' 'b' 'g'; ...
    'g' 'r' 'b'; ...
    'b' 'r' 'g'}))
'[["r","b","g"],["g","r","b"],["b","r","g"]]'

categorical형 배열

문자열로 구성된 중첩 배열

  

containers.Map

객체

jsonencode(containers.Map( ...
    {'Jan','Feb','Mar'}, ...
    [327,368,197]))
'{"Feb":368,"Jan":327,"Mar":197}'

NaN
Inf

null

jsonencode([1,2,NaN,3,Inf])
'[1,2,null,3,null]'

스칼라 MATLAB 객체를 ([] 문자로 묶인) 스칼라 JSON 배열로 전달하려면 셀형 배열 생성 연산자 {}를 사용하여 객체를 변환하십시오. 예를 들어, 다음 코드는 features 필드의 값을 스칼라 JSON 배열로 변환합니다.

S = struct("features", struct("type", "Feature", "geometry",...
    struct("type", "point", "coordinates", [-105, 40])));
S.features = {S.features};
s = jsonencode(S)
s = '{"features":[{"type":"Feature","geometry":{"type":"point","coordinates":[-105,40]}}]}'

참고 항목

|

R2016b에 개발됨