programing

JSON에 null 값을 포함해야 함

codeshow 2023. 3. 23. 22:58
반응형

JSON에 null 값을 포함해야 함

JSON으로 결과를 반환하는 API를 만들고 있습니다.값이 null일 때 결과에 키를 포함시킬지 여부에 대한 현재의 베스트 프랙티스가 있습니까?예를 들어 다음과 같습니다.

{
    "title":"Foo Bar",
    "author":"Joe Blow",
    "isbn":null
}

또는

{
    "title":"Foo Bar",
    "author":"Joe Blow"
}

두 번째는 작기 때문에 이 스타일에 기울어져 있습니다만, 선호하는 스타일이 있는지 어떤지 잘 모르겠습니다.고객의 관점에서 보면 두 스타일이 기능적으로 동등할 것 같습니다.각각 장단점이 있나요?

나는 그것이 의미를 가지고 있기 때문에 항상 명시적으로 null을 포함하는 것의 팬이다.속성을 생략하면 모호함이 남습니다.

서버와의 프로토콜이 위의 어느 하나에 동의하는 한 동작할 수 있지만, 서버에서 null을 전달하면 나중에 API가 더 유연해질 것입니다.

javascript의 hasOwnProperty 함수가 더 많은 통찰력을 제공한다는 점도 언급해야 합니다.

/* if true object DOES contain the property with *some* value */
if( objectFromJSON.hasOwnProperty( "propertyName" ) )

/* if true object DOES contain the property and it has been set to null */
if( jsonObject.propertyName === null )

/* if true object either DOES NOT contain the property
   OR
   object DOES contain the property and it has been set to undefined */
if( jsonObject.propertyName === undefined )

두 번째 방법은 대역폭을 다소 절약하지만 문제가 있는 경우에는 JSON에 키를 채우는 대신 인덱스 어레이도 사용합니다.확실히.["Foo Bar","Joe Blow"]지금보다 훨씬 짧습니다.

사용성 면에서는 별 차이가 없다고 생각합니다.두 경우 모두,if(json.isbn)로 건너뜁니다.else. 일반적으로는 이 둘을 구별할 필요가 없습니다.null(값 없음) 및undefined(지정된 값은 없습니다).

JavaScript에서는null와는 전혀 다른 것을 의미한다undefined.

JSON 출력에는 JSON 데이터 사용의 특정 컨텍스트에서 응용 프로그램에 의해 사용되는 것과 필요한 것이 반영되어야 합니다.

이 명령어를 반드시 포함시켜야 합니다.null그리고.undefinedJavascript에서는 두 가지 의미가 있기 때문입니다.생각할 수 있다null특성이 불분명하거나 무의미함을 의미하며,undefined부동산이 존재하지 않는다는 뜻이죠

한편, 그러한 구별을 할 필요가 없다면, 그것을 생략해 주세요.

JSON을 API 데이터 캐리어로서 사용하는 경우, null 또는 empty(정의되지 않은) 값이 있어도 차이가 없습니다.payload 사이즈를 저장하기 때문에 비어 있는 것이 좋습니다.

JSON 컨피규레이션파일의 경우는, 수동으로 편집하는 경우에 차이가 표시됩니다.정의되지 않은 소품보다는 Null이 있는 것이 낫다.이렇게 하면 설정 소품 존재에 대한 힌트를 얻을 수 있습니다.

언급URL : https://stackoverflow.com/questions/11003424/should-json-include-null-values

반응형