相关疑难解决方法(0)

使用Jackson将JSON字符串转换为Pretty Print JSON输出

这是我的JSON字符串:

{"attributes":[{"nm":"ACCOUNT","lv":[{"v":{"Id":null,"State":null},"vt":"java.util.Map","cn":1}],"vt":"java.util.Map","status":"SUCCESS","lmd":13585},{"nm":"PROFILE","lv":[{"v":{"Party":null,"Ads":null},"vt":"java.util.Map","cn":2}],"vt":"java.util.Map","status":"SUCCESS","lmd":41962}]}
Run Code Online (Sandbox Code Playgroud)

我需要将上面的JSON String转换为Pretty Print JSON Output(使用Jackson),如下所示:

{
    "attributes": [
        {
            "nm": "ACCOUNT",
            "lv": [
                {
                    "v": {
                        "Id": null,
                        "State": null
                    },
                    "vt": "java.util.Map",
                    "cn": 1
                }
            ],
            "vt": "java.util.Map",
            "status": "SUCCESS",
            "lmd": 13585
        },
        {
            "nm": "PROFILE
            "lv": [
                {
                    "v": {
                        "Party": null,
                        "Ads": null
                    },
                    "vt": "java.util.Map",
                    "cn": 2
                }
            ],
            "vt": "java.util.Map",
            "status": "SUCCESS",
            "lmd": 41962
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以根据我上面的例子给我一个例子吗?如何实现这种情况?我知道有很多例子,但我无法正确理解这些例子.通过一个简单的例子可以获得任何帮助.

更新:

以下是我使用的代码:

ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(jsonString));
Run Code Online (Sandbox Code Playgroud)

但这不适用于我需要输出的方式,如上所述.

这是我用于上述JSON的POJO:

public class UrlInfo implements …
Run Code Online (Sandbox Code Playgroud)

java json pretty-print jackson

146
推荐指数
7
解决办法
20万
查看次数

如何使`@Endpoint(id ="health")`在Spring Boot 2.0中工作?

我已经尝试了在Spring Boot 2.0.0.M5中自定义健康执行器的新方法,如下所述:https://spring.io/blog/2017/08/22/introducing-actuator-endpoints-in-spring- boot-2-0:

@Endpoint(id = "health")
public class HealthEndpoint {
    @ReadOperation
    public Health health() {
        return new Health.Builder()
            .up()
            .withDetail("MyStatus", "is happy")
            .build();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行HTTP GET时localhost:port/application/health,我仍然获得标准的默认健康信息.我的代码完全被忽略了.

当我使用通过实现自定义健康信息的"传统方式"时HealthIndicator,它按预期工作,健康信息用给定的细节装饰:

@Component
public class MyHealthIndicator implements HealthIndicator {
    @Override
    public Health health() {
        return new Health.Builder()
            .up()
            .withDetail("MyStatus 1.1", "is happy")
            .withDetail("MyStatus 1.2", "is also happy")
            .build();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:我还应该配置和/或实施哪些@Endpoint(id = "health")解决方案?

我的目的不是创建一个定制的执行器myhealth,而是定制现有的health执行器.基于文档,我希望通过实现HealthIndicator获得相同的结果.我错在那个假设吗?


Maven配置pom.xml包含: …

java spring spring-boot spring-boot-actuator

4
推荐指数
1
解决办法
3177
查看次数