【问题标题】:Convert Jackson object into JSONObject java将 Jackson 对象转换为 JSONObject java
【发布时间】:2014-03-07 19:00:01
【问题描述】:

我想弄清楚如何将 Jackson 对象转换为 JSONObject?

我已经尝试过,但我不认为这是正确的方法。

public JSONObject toJSON() throws IOException {
    ObjectMapper mapper = new ObjectMapper();       
    return new JSONObject(mapper.writeValueAsString(new Warnings(warnings)));
}

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    现在,您正在将 Pojo 序列化为 String,然后解析该 String 并将其转换为 JSONObject 形式的 HashMap 样式对象。

    这是非常低效的,并没有带来任何好处。

    Jackson 已经提供了一个ObjectNode 类,用于与您的 Pojo 作为 JSON 对象进行交互。所以只需将您的对象转换为ObjectNode。这是一个工作示例

    public class Example {
        public static void main(String[] args) throws Exception {
            Pojo pojo = new Pojo();
            pojo.setAge(42);
            pojo.setName("Sotirios");
            ObjectMapper mapper = new ObjectMapper();
            ObjectNode node = mapper.valueToTree(pojo);
            System.out.println(node);
        }
    }
    
    class Pojo {
        private String name;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    否则,你这样做的方式很好。

    【讨论】:

      【解决方案2】:

      您正在做的方式很好,因为我也使用这种方式来制作 JSONobject。

      这是我的代码

       public JSONObject getRequestJson(AccountInquiryRequestVO accountInquiryRequestVO) throws  JsonGenerationException, JsonMappingException, IOException {
                ObjectMapper mapper = new ObjectMapper();
                JSONObject jsonAccountInquiry;
      
                 jsonAccountInquiry=new JSONObject(mapper.writeValueAsString(accountInquiryRequestVO));
      
        return jsonAccountInquiry;  
       }
      

      它对我来说很好用。但你也可以随时使用 JsonNode 这是示例代码

      JsonNode jsonNode=mapper.valueToTree(accountInquiryRequestVO);
      

      它非常易于使用。

      【讨论】:

        猜你喜欢
        • 2016-05-14
        • 2014-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多