How to solve the problem of address reference in JSONObject.toJSONString
This article mainly explains "how to solve the address citation problem in JSONObject.toJSONString". Interested friends may wish to take a look. The method introduced in this paper is simple, fast and practical. Let's let the editor take you to learn how to solve the address citation problem in JSONObject.toJSONString.
JSONObject.toJSONString address reference problem
If there are two object properties an and b of the same type in an object, and if an and b directly refer to the memory address of the same object, the memory address reference will appear in the json string obtained by the JSONObject.toJSONString method.
Public static void main (String [] args) {JsonVO jsonVO = new JsonVO (); AA = new A (); a.setA ("a"); a.setB ("b"); jsonVO.setA (a); jsonVO.setB (a); System.out.println (JSONObject.toJSONString (jsonVO));} @ Datapublic class JsonVO implements Serializable {private An a; private A b } @ Datapublic class An implements Serializable {private String a; private String b;}
Console output result:
{"a": {"a": "a", "b": "b"}, "b": {"ref": ".a"}}
How to avoid it?
System.out.println (JSONObject.toJSONString (jsonVO, SerializerFeature.DisableCircularReferenceDetect)); do not use JSONObject.toJSONString blindly
JSONObject.toJSONString will execute all get methods in your class to be parsed by default.
Null pointer exceptions are easy to occur, and should be replaced with the method gson.toJson ()
At this point, I believe you have a deeper understanding of "how to solve the address citation problem in JSONObject.toJSONString". You might as well do it in practice. Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!