2014-10-07 88 views
0

我已经尝试了几种使用java创建follwing格式json的方法。 (Gson,Jackson,...)使用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." 
    } 
} 

任何帮助?

+1

你能发布你试过的代码吗? – 2014-10-07 10:35:21

+0

我已经创建了包含这些参数的模型类,然后使用了getObjectMapper()。writeValueAsString(sendSMSTemplate);创建失败的json。我认为它需要另一种方式。 – manitaz 2014-10-07 10:39:02

回答

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。