如何在单个实体中发布两个不同的json对象?

时间:2014-06-30 06:35:40

标签: android json rest http-post

@Override
protected Void doInBackground(Void... arg0) {
    HttpClient httpClient = new DefaultHttpClient();
    // Creating HTTP Post
    HttpPost httpPost = new HttpPost("www.somewebsite.com");
    httpPost.setHeader("Content-type", "application/json");

    try {
        httpPost.setEntity(new StringEntity(getJSONString(), "UTF-8"));
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    // Making HTTP Request
    try {
        HttpResponse response = httpClient.execute(httpPost);
        System.out.println(response.getStatusLine().getStatusCode());
    } catch (ClientProtocolException e) {
        // writing exception to log
        e.printStackTrace();
    } catch (IOException e) {
        // writing exception to log
        e.printStackTrace();

    }

}

这对我来说很好。但是,我想将其他jsonobject业务数据发送到服务器。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

将2 JSONObjects 合并为1。

{   
 "json_1": {
    "a": "1"   
 },   
 "json_2": {
    "b": "2"   
 } 
}

答案 1 :(得分:0)

你只能发送一个实体,因此需要更新你的函数getJSONString()以将两个对象作为一个字符串返回。

您可能需要考虑发送正确的JSON列表。

[
    { /* object one */ },
    { /* object two */ }
]

我认为这比“组合对象”更为可取

{
    "object one" : { /* object one */ },
    "object two" : { /* object two */ }
}

使用组合对象会使解析变得笨拙,因为您必须明确地从主对象中获取每个子对象。使用数组,您可以简单地遍历列表中的每个元素,这意味着向列表中添加更多内容就像向列表中添加更多内容一样简单。您的确切用法可能意味着组合对象更好,例如,如果您需要知道子对象应该处理的确切顺序;您看到的JSON列表是无序的。

答案 2 :(得分:-1)

简单!俱乐部使用分隔符json,然后使用服务器上的分隔符分隔。

或者使用两个jsons构建一个新的json对象,并将一个公共json对象发送到服务器。

尼西