모델 가져오기 시 1을 true로 또는 0을 false로 변환하는 방법
나는 mysql 데이터베이스의 JSON 응답으로 설정된 모델을 가지고 있습니다.모델 데이터는 true 또는 false로 데이터베이스의 부울/작은 의미 필드에 설정됩니다. 이 필드는 다음을 사용합니다.1
또는0
.
내가 보기에는 밑줄이 있는 부울을 확인하는 바인딩이 있습니다._.isBoolean
물론, 내 모델이 데이터를 받을 때, 그것은 다음과 같이 설정됩니다.1
또는0
참 또는 거짓 대신에 그리고._.isBoolean
검사가 실패합니다.
mysql의 내 JSON 응답을 정확하게 boolean true 또는 false 값으로 하는 방법이 있습니까?1
또는0
또는 가급적이면 내 모델을 가져올 때(뷰가 렌더링되기 전) 캐스트할 수 있도록 업데이트할 수 있는 방법이 있습니까?true
또는false
1이나 0의 재산을 기준으로?
예: 내 모델의 데이터는 다음과 같습니다.{"isChecked":"1"}
내가 필요할 때{"isChecked":true}
당신이 제안할 수 있는 모든 것에 대해 대단히 감사합니다!
변환만 하면 됩니다.string
로.int
와 함께+
결과를 부울 값으로 변환합니다.!!
:
var response = {"isChecked":"1"};
response.isChecked = !!+response.isChecked
이 조작은 다음에서 수행할 수 있습니다.parse
방법:
parse: function (response) {
response.isChecked = !!+response.isChecked;
return response;
}
업데이트: 7년 후, 저는 발견했습니다.Number(string)
좀 더 우아한 전환.또한 물체를 돌연변이 시키는 것은 좋은 생각이 아닙니다.그것은 다음과 같습니다.
parse: function (response) {
return Object.assign({}, response, {
isChecked: !!Number(response.isChecked), // OR
isChecked: Boolean(Number(response.isChecked))
});
}
이중 사용 안 함:
!!1 = true;
!!0 = false;
obj.isChecked = !!parseInt(obj.isChecked);
여기 더 길지만 더 읽기 쉬운 다른 옵션이 있습니다.
Boolean(Number("0")); // false
Boolean(Number("1")); // true
속성 값에 비교 할당
자바스크립트
속성 비교를 다음에 할당할 수 있습니다."1"
obj["isChecked"] = (obj["isChecked"]==="1");
이 값은 다음의 문자열 값에 대해서만 평가됩니다."1"
그래도.다른 변수들은 실제 변수처럼 거짓으로 평가됩니다.typeof number
거짓일 수 있습니다.(즉,obj["isChecked"]=1
)
만약 당신이 차별하지 않기를 원한다면,"1"
또는1
다음을 사용할 수 있습니다.
obj["isChecked"] = (obj["isChecked"]=="1");
출력 예제
console.log(obj["isChecked"]==="1"); // true
console.log(obj["isChecked"]===1); // false
console.log(obj["isChecked"]==1); // true
console.log(obj["isChecked"]==="0"); // false
console.log(obj["isChecked"]==="Elephant"); // false
PHP
PHP에서도 동일한 개념
$obj["isChecked"] = ($obj["isChecked"] == "1");
JavaScript에 대해 위에서 언급한 것과 동일한 운영자 제한이 적용됩니다.
더블 노트
'double not'도 효과가 있습니다.사람들이 처음 읽을 때는 혼란스럽지만 정수/숫자 유형 값에 대해서는 두 언어로 모두 작동합니다.그러나 문자열 유형 값은 항상 true로 평가되므로 JavaScript에서는 작동하지 않습니다.
자바스크립트
!!"1"; //true
!!"0"; //true
!!1; //true
!!0; //false
!!parseInt("0",10); // false
PHP
echo !!"1"; //true
echo !!"0"; //false
echo !!1; //true
echo !!0; //false
Boolean(Number(myVar))
또는
!!+myVar
또 다른 해결 방법은 부울을 포함하는 배열을 만들고 해당 부울을 인덱스에 할당하는 것입니다.아래에서 설명하겠습니다.
const bools = [false,true];
int 또는 str을 사용하여 원하는 부울에 액세스합니다.
bools['0'] (str)
또는bools[0] (int)
브라우저에서 올바르게 작동하고 올바른 값을 산출해야 합니다.최근에 확인란 값을 설정하는 데 사용했습니다.
이것이 도움이 되었기를 바랍니다.
언급URL : https://stackoverflow.com/questions/16313222/how-to-convert-1-to-true-or-0-to-false-upon-model-fetch
'programing' 카테고리의 다른 글
바이온 도커 컨테이너를 실행하는 방법은 무엇입니까? (0) | 2023.07.31 |
---|---|
PostgreSQL 오류: 복구와의 충돌로 인해 문을 취소합니다. (0) | 2023.07.31 |
iOS - 지연 후 여러 인수와 함께 performSelector를 구현하는 방법은 무엇입니까? (0) | 2023.07.31 |
Swagger에서 Spring의 로그인/로그아웃 API 문서화 (0) | 2023.07.31 |
Base64로 CSS에 배경 이미지 데이터를 포함하는 것이 좋은 관행입니까, 나쁜 관행입니까? (0) | 2023.07.31 |