org.json을 사용하여 값을 null로 설정하려면 어떻게 해야 합니다.Java의 JSONObject?
org.json을 사용하여 값을 null로 설정하려면 어떻게 해야 합니다.Java의 JSONObject?is Null을 사용하여 값이 null인지 확인할 수 있지만 null을 입력하면 무시됩니다.
JSONObject o = new JSONObject();
o.put("key",null);
o.isNull("key"); // returns true, buuuut...
o.has("key"); // returns false
o.isNull("somethingIHaventSetAtAll"); // also returns true, unfortunately
대신 설정을 시도합니다.null
:
값이 없는 이름을 명시적으로 정의하기 위해 사용되는 Sentinel 값.null과 달리 다음 값을 가진 이름:
- names() 배열에 표시되다
- keys() 반복기에 표시되다
- has(String)에 대해 true를 반환한다.
- 허세를 부리지 않다
- 부호화된 JSON 문자열에 포함되어 있습니다.
이 값은 null과 비교할 때 true를 반환함으로써 equals(Object)의 일반 계약을 위반합니다.toString() 메서드는 "null"을 반환합니다.
net.sf.json을 사용하는 경우JSONObject null을 생성해야 합니다.JSON
타고
new JSONObject(true)
이렇게 하면 수업 분위기가 좋아진다.
groovy.grape.Grape.grab(group: "org.kohsuke.stapler", module: "json-lib", version: "2.4-jenkins-2")
저는 이 프로젝트를 만들었습니다.https://github.com/leonardofel/JSON-java-put-null-fix
변경(또는 수정)하려면 라이브러리를 pom.xml로 Import하기만 하면 됩니다.
코드는 다음과 같이 동작합니다.
JSONObject o = new JSONObject();
o.put("key", null);
o.isNull("key"); // returns true
o.has("key"); // returns true
o.isNull("somethingIHaventSetAtAll"); // returns true
o.get("key"); // returns null
o.remove("key");
o.isNull("key"); // returns true
o.has("key"); // returns false
o.isNull("somethingIHaventSetAtAll"); // returns true
o.get("key"); // throws JSONException "key" not found
유틸리티 클래스를 만들거나 기존 유틸리티 클래스가 있는 경우 이 유틸리티 메서드를 만듭니다.
class JsonObjectUtility{
public static Object getJSONObjectValue(Object value) {
return value == null ? "null" : value;
}
}
이 유틸리티를 통해 모든 입력을 전달한 후 다음과 같이 JSONObject put 메서드에 전달합니다(질문의 코드 샘플을 사용합니다).
JSONObject o = new JSONObject();
o.put("key", JsonObjectUtility.getJSONObjectValue(null) );
다음과 같이 json 문자열을 인쇄합니다.
{ "key" : null }
언급URL : https://stackoverflow.com/questions/13613754/how-do-you-set-a-value-to-null-with-org-json-jsonobject-in-java
'programing' 카테고리의 다른 글
Woocommerce 체크아웃 페이지 내부 서버 오류 (0) | 2023.03.21 |
---|---|
화면 크기에 관계없이 DIV를 페이지 중앙에 배치 (0) | 2023.03.21 |
AngularJS에서 IE 캐시를 방지하는 더 나은 방법? (0) | 2023.03.21 |
이름이 '[DEFAULT]'인 Firebase 앱이 이미 있습니다(app/duplicate-app). (0) | 2023.03.21 |
Kotlin & Spring Boot @Configuration Properties (0) | 2023.03.21 |