public static String analytical(String expression, String language) throws Exception {
        return analytical(expression, new HashMap<>(), language);
    }
@Test
    public void testJson2(){
        String js = ExpressionUtils.analytical("{\n" +
                "     \"msgtype\": \"markdown\",\n" +
                "     \"markdown\": {\n" +
                "         \"title\":\"消息类型:${messageType}\",\n" +
                "         \"text\": \" - 设备ID: `${deviceId}` 值:`${properties.a-r-str}` \\n - 设备型号: `${headers.productId}`\\n - 设备名称: `${headers.deviceName}`\"" +
                "     \n},\n" +
                "      \"at\": {\n" +
                "          \"isAtAll\": false\n" +
                "      }\n" +
                "}", JSON.parseObject("{\n" +
                "  \"deviceId\": \"VIS-Mandrake-12289\",\n" +
                "  \"headers\": {\n" +
                "    \"productId\": \"VIS-Mandrake\",\n" +
                "    \"deviceName\": \"能见度仪-曼德克-01\"\n" +
                "  }, \"properties\": {\n" +
                "        \"a-r-str\": \"a2\"\n" +
                "    },\n" +
                "  \"messageType\": \"OFFLINE\",\n" +
                "  \"timestamp\": 1592098397277\n" +
                "}"), "spel");

        System.out.println(js);
    }