为了账号安全,请及时绑定邮箱和手机立即绑定

用 Jackson 替换 JSON.simple

用 Jackson 替换 JSON.simple

当年话下 2021-11-03 15:09:54
我想在以下代码片段中用 Jackson 替换 JSON.simple:JSONObject request = new JSONObject();request.put("String key", /String value/);request.put("String key", /int value/);...它看起来像这样:ObjectMapper mapper = new ObjectMapper();JsonNode request = mapper.createObjectNode();((ObjectNode) request).put("String key", /String value/);((ObjectNode) request).put("String key", /int value/);我发现转换和额外声明有点过于复杂和丑陋。我做错了吗,有什么建议吗?(我想通过 REST 实体发送这个 JSON)
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

使用 ObjectNode 而不是 JsonNode。尝试这个:


    ObjectNode request = mapper.createObjectNode();

    request.put("key", "val");

    System.out.println(request.toString());


查看完整回答
反对 回复 2021-11-03
?
catspeake

TA贡献1111条经验 获得超0个赞

这个链接有很好的信息。我觉得你应该有对象而不是手动构建你的 json。


https://www.baeldung.com/jackson-object-mapper-tutorial


public class Car {


    private String color;

    private String type;


    // standard getters setters

}

然后


ObjectMapper objectMapper = new ObjectMapper();

Car car = new Car("yellow", "renault");

String output = objectMapper.writeValueAsString(car);

输出:


{"color":"yellow","type":"renault"}


查看完整回答
反对 回复 2021-11-03
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

你的代码应该是这样的

            ObjectMapper mapper = new ObjectMapper();            
            ObjectNode request = mapper.createObjectNode();
            request.put("String key", /String value/);
            request.put("String key", /int value/);


查看完整回答
反对 回复 2021-11-03
  • 3 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信