繁体   English   中英

如何在 java 中编写最优雅的方法来制作 json?

[英]How can I write the most elegant way to make json in java?

如何在 java 中编写最优雅的方法来制作 json?

这是 json 的值。

{
    "R01": {
        "time": "2021-12-15 16:01:19",
        "status": "STOP",
        "direction": "STOP",
        "pos": 500,
        "schID": "",
        "schTime": "",
        "ptz": "0.2/0.0/0",
        "battery": 27.7,
        "batterystatus": "USE",
        "sensors": {
            "sTemp": 24.3,
            "sHumi": 28.4,
            "sO2": 20.5,
            "sCO": 0.0,
            "sCO2": 0.04,
            "sNO2": 0.0,
            "sH2S": 0.0,
            "sIRMax": 10.3,
            "sIRMin": 5.7,
            "sIRMean": 7.1
        }
    },
    "R02": {
        "time": "2021-12-15 16:01:19",
        "status": "DCON"
    }
}

编写了以下 java 以制作此 json 格式。

  LinkedHashMap<String, Object> result = new LinkedHashMap<>();

        LinkedHashMap<String, Object> sensor = new LinkedHashMap<>();
        sensor.put("sTemp", String.valueOf(ThreadLocalRandom.current().nextInt(15, 35)));
        sensor.put("sHumi", String.valueOf(ThreadLocalRandom.current().nextInt(40, 60)));
        sensor.put("sO2", String.valueOf(ThreadLocalRandom.current().nextInt(0, 30)));
        sensor.put("sCO", String.valueOf(ThreadLocalRandom.current().nextInt(0, 30)));
        sensor.put("sCO2", String.valueOf(ThreadLocalRandom.current().nextInt(0, 30)));
        sensor.put("sNO2", String.valueOf(ThreadLocalRandom.current().nextInt(0, 30)));
        sensor.put("sH2S", String.valueOf(ThreadLocalRandom.current().nextInt(0, 30)));
        sensor.put("sIRMax", String.valueOf(ThreadLocalRandom.current().nextInt(15, 35)));
        sensor.put("sIRMin", String.valueOf(ThreadLocalRandom.current().nextInt(15, 35)));
        sensor.put("sIRMean", String.valueOf(ThreadLocalRandom.current().nextInt(15, 35)));

        LinkedHashMap<String, Object> robotInfo = new LinkedHashMap<>();
        robotInfo.put("time", LocalDate.now());
        robotInfo.put("status", "CHK");
        robotInfo.put("direction", "STOP");
        robotInfo.put("pos", String.valueOf(ThreadLocalRandom.current().nextInt(100, 600)));
        robotInfo.put("schID", "");
        robotInfo.put("schTime", "");
        robotInfo.put("ptz", "53.0/0.0/1");
        robotInfo.put("battery", "27.5");
        robotInfo.put("batterystatus", "USE");
        robotInfo.put("sensors", sensor);

        // Robot #2
 I wrote a code similar to the above.

我手动编写如下,但我想知道是否可以将其更改为更清洁和更智能的代码。

对于“流利”的创建,您应该查看 JsonObjectBuilder。
It contains a useful example with the resulting JSON structure: https://docs.oracle.com/javaee/7/api/javax/json/JsonObjectBuilder.html

发现了一个类似的问题: How to fluently build JSON in Java?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM