【问题标题】:Create json object using java使用java创建json对象
【发布时间】:2014-10-07 10:33:39
【问题描述】:

我尝试了几种方法来使用 java 创建以下格式的 json。 (格森,杰克逊,...)

{
  "outbound": {
    "address": [
      "t91",
      "t0992"
    ],
    "send": "t678",
    "outMessage": {
      "message": "Hello World"
    },
    "client": "156",
    "receipt": {
      "URL": "http://example.com/Delivery",
      "callback": "some-to-the-request"
    },
    "senderName": "Inc."
  }
}

有什么帮助吗?

【问题讨论】:

  • 你能贴出你试过的代码吗?
  • 我创建了包含这些参数的模型类,然后使用 getObjectMapper().writeValueAsString(sendSMSTemplate);创建失败的json。我认为它需要另一种方式。

标签: java json jackson gson


【解决方案1】:

使用下面的代码。 创建 POJO

public class TestPojo {
    private Outbound outbound;

    public Outbound getOutbound() {
        return outbound;
    }

    public void setOutbound(Outbound outbound) {
        this.outbound = outbound;
    }

}

class Outbound {
    private String[] address;
    private String send;
    private OutMessage outMessage;
    private Receipt receipt;
    private String senderName;

    public String[] getAddress() {
        return address;
    }

    public void setAddress(String[] address) {
        this.address = address;
    }

    public String getSend() {
        return send;
    }

    public void setSend(String send) {
        this.send = send;
    }

    public OutMessage getOutMessage() {
        return outMessage;
    }

    public void setOutMessage(OutMessage outMessage) {
        this.outMessage = outMessage;
    }

    public Receipt getReceipt() {
        return receipt;
    }

    public void setReceipt(Receipt receipt) {
        this.receipt = receipt;
    }

    public String getSenderName() {
        return senderName;
    }

    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }

}

class OutMessage {
    private String message;

    public OutMessage(String message) {
        super();
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}

class Receipt {
    private String URL;
    private String callback;

    public Receipt(String uRL, String callback) {
        super();
        URL = uRL;
        this.callback = callback;
    }

    public String getURL() {
        return URL;
    }

    public void setURL(String uRL) {
        URL = uRL;
    }

    public String getCallback() {
        return callback;
    }

    public void setCallback(String callback) {
        this.callback = callback;
    }

}

主类(JSON 到对象)

String json = "{'outbound':{'address':['t91','t0992'],'send':'t678','outMessage':{'message':'Hello World'},'receipt':{'URL':'http://example.com/Delivery','callback':'some-to-the-request'},'senderName':'Inc.'}}";
TestPojo testPojo = new Gson().fromJson(json, TestPojo.class);
System.out.println(testPojo.getOutbound().getSenderName());

输出

Inc.

主类(对象到 JSON)

TestPojo testPojo = new TestPojo();
Outbound outbound = new Outbound();

outbound.setAddress(new String[]{"t91", "t0992"});
outbound.setOutMessage(new OutMessage("Hello World"));
outbound.setReceipt(new Receipt("http://example.com/Delivery", "some-to-the-request"));
outbound.setSenderName("Inc.");
outbound.setSend("t678");
testPojo.setOutbound(outbound);

System.out.println(new Gson().toJson(testPojo));

输出

{"outbound":{"address":["t91","t0992"],"send":"t678","outMessage":{"message":"Hello World"},"receipt":{"URL":"http://example.com/Delivery","callback":"some-to-the-request"},"senderName":"Inc."}}

详情

使用 GSON 库。 用了你给的json。

【讨论】:

    猜你喜欢
    • 2017-04-19
    • 2019-07-17
    • 2013-01-29
    • 2016-10-27
    • 2023-03-30
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多