色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java json轉null

錢斌斌2年前8瀏覽0評論

在Java中,JSON轉換是非常常見的操作。但是,在進行JSON轉換時,有時候會出現將null值轉換成字符串"null"的情況,這可能會導致一些問題。

舉個例子:

String jsonString = "{'name':'Tom','age':null}";
JSONObject jsonObject = new JSONObject(jsonString); // 或者使用其它的json庫
String name = jsonObject.getString("name");
String age = jsonObject.getString("age");
System.out.println(name); // 輸出:Tom
System.out.println(age); // 輸出:null

可以看到,age的值被轉換成了字符串"null"。這樣的結果可能會在后續的數據處理中引起一些問題。

那么,如何避免將null轉換成字符串"null"的問題呢?

一種解決方法是使用json庫提供的isNull()方法判斷屬性的值是否為null,再進行相應的處理。

String jsonString = "{'name':'Tom','age':null}";
JSONObject jsonObject = new JSONObject(jsonString);
String name = jsonObject.getString("name");
String age = jsonObject.isNull("age") ? null : jsonObject.getString("age");
System.out.println(name); // 輸出:Tom
System.out.println(age); // 輸出:null

在這個例子中,使用了isNull()方法判斷age屬性的值是否為null,如果是null則將其賦值為null,否則獲取age屬性的值。

另一種解決方法是使用Jackson庫的JsonInclude.Include.NON_NULL枚舉類型,在對象序列化時將對象中值為null的屬性忽略掉。

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
String jsonString = mapper.writeValueAsString(object);

使用這種方法,在將Java對象序列化成JSON字符串時,將忽略掉值為null的屬性。這樣,就不會出現將null轉換成字符串"null"的問題了。