JSONObject.toJSONString(this);
JSONObject.toJSONString(this)是使用fastjson库中的JSONObject类的一个方法,用于将一个Java对象转换为JSON格式的字符串。根据提供的引用内容,可以看出这个方法有两个参数,第一个参数是要转换的Java对象,第二个参数是一些序列化特性。
根据引用和引用的内容,可以了解到两种情况下的序列化行为。情况一是默认情况下忽略值为null的属性,情况二是包含值为null的属性。因此,根据你提供的代码,如果使用默认情况,即没有传递SerializerFeature.WriteMapNullValue参数,那么生成的JSON字符串中将不包含值为null的属性;如果传递了SerializerFeature.WriteMapNullValue参数,那么生成的JSON字符串中将包含值为null的属性。
jsonobject.tojsonstring依赖
Java 中 toString
方法的使用
在 Java 中,toString
是 Object 类提供的一个方法,用于返回对象的字符串表示形式[^1]。通过重写此方法可以自定义对象的字符串表达方式,从而提高程序的可读性和调试效率。
自定义 toString
的实现原则
为了使 toString
返回的内容更加直观易懂,建议遵循以下几点:
- 清晰性:应尽可能提供简洁明了的信息来描述对象状态。
- 一致性:对于同一类型的多个实例,在相同条件下调用
toString
应该得到相似结构的结果。 - 不变量:除非有特殊原因,否则不应改变已发布的类中
toString
行为。
实现示例
下面是一个简单的例子展示了如何在一个名为 Person 的类里覆盖默认的 toString
方法:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
在这个例子中,当创建了一个新的 Person
对象并打印它时,将会显示其名称和年龄而不是默认的对象地址信息。
常见问题及解决方案
如果忘记重写了
toString
或者错误地实现了这个方法,则可能会看到类似于com.example.Person@7f80b9d4
这样的输出。这是因为如果没有特别指定的话,默认情况下会调用父类即 Object 提供的那个版本的方法。当处理复杂的数据结构比如集合或者嵌套对象的时候,可能需要更细致地考虑怎样构建最终要展示给用户的字符串。此时可以根据实际情况调整拼接逻辑或是利用第三方库简化操作过程。
public void onMessage(String message) { log.debug("【websocket消息】收到客户端消息:" + message); JSONObject obj = new JSONObject(); if (Validator.isNotNullOrEmpty(message) && JSONUtil.isJson(message)) { JSONObject jsonObject = JSONObject.parseObject(message); String cmd = jsonObject.getString("cmd"); String msgTxt = jsonObject.getString("msgTxt"); String deviceNo = jsonObject.getString("deviceNo"); if ("heartcheck".equals(cmd)) { obj.put("cmd", "heartcheck"); obj.put("msgTxt", String.format("心跳响应:%s", msgTxt)); } else if ("outpatientReception".equals(cmd)) { List<List<String>> list = this.receptionWaitingService.list(deviceNo); obj.put("cmd", "outpatientReception"); obj.put("msgTxt", JSONObject.toJSONString(list)); } this.pushMessage(deviceNo, obj.toJSONString()); } }
这段代码是一个 Java 中 WebSocket 消息处理的方法。当客户端发送消息时,会触发该方法,对接收到的消息进行解析和处理。首先判断消息不为空且为 JSON 格式,然后根据消息中的 cmd 字段的值进行不同的处理逻辑。当 cmd 为 "heartcheck" 时,返回一个心跳响应;当 cmd 为 "outpatientReception" 时,查询数据库列表信息,并将结果封装为 JSON 格式返回。最后,调用 pushMessage 方法将处理后的消息推送给对应的设备。
需要注意的是,该代码中使用了阿里巴巴的 fastjson 库来对 JSON 数据进行解析和封装,需要在项目中添加该依赖。
相关推荐













