2012-03-29 92 views
18

我想爲我的Android設備編寫一個嵌套的JSON對象,但是如何?我只有使用JSON基本經驗,所以我會很感激,如果有人可以幫助我用下面的代碼:如何在Java中創建嵌套的Json對象?

{ 
"command": "login", 
"uid": "123123123", 
"params": 
    { 
    "username": "sup", 
    "password": "bros" 
    } 
} 

編輯:

下面的代碼確實解決問題:

loginInformation = new ArrayList<NameValuePair>(); 

JSONObject parentData = new JSONObject(); 
JSONObject childData = new JSONObject(); 

try { 

    parentData.put("command", "login"); 
    parentData.put("uid", UID.getDeviceId()); 

    childData.put("username", username.getText().toString()); 
    childData.put("password", password.getText().toString()); 
    parentData.put("params", childData); 

} catch (JSONException e) { 
    e.printStackTrace(); 
} 

loginInformation.add(new BasicNameValuePair("content", parentData.toString())); 
+1

你嘗試使用JSON服務進行通信?你真的需要發送如此困難的結構嗎? – 2012-03-29 14:37:15

+7

你在開玩笑嗎?發送嵌套的JSON對象有什麼困難!? – Xarialon 2012-03-31 17:46:02

+1

正是我所需要的!謝謝@ Xarialon – 2013-11-21 11:05:40

回答

5

您需要創建一個JSON,並將JSON作爲參數添加到您的POST中。要做到這一點你應該:

post.add(new BasicNameValuePair("data",json.toString()); 

你可以使用org.json.JSONObject,它包含在Android SDK

+1

謝謝,我的意思是嵌套而不是多維。 :) – Xarialon 2012-03-31 20:58:24

+0

@Ovidiu Latcu請檢查我的問題http://stackoverflow.com/questions/15171454/sending-complex-json-object – bCliks 2013-03-06 09:24:01

+0

@OvidiuLatcu你可以請檢查我的問題[http://stackoverflow.com/questions/42024158/how-to-access-github-graphql-api-using-java] – 2017-02-06 06:15:52

1

BasicNameValuePair是您用來添加POST參數。這是有點不清楚你問的。你問,如果給定JSON,將參數值作爲後置參數提交?

您需要首先解析JSON,然後拉出參數,然後將它們添加到表單後,像這樣,

JSONObject jo = new JSONObject(jsonString); 
JSONObject joParams = jo.getJSONObject("params"); 
String username = joParams.getString("username"); 

post.add(new BasicNameValuePair("username",username); 

你當然會希望在JSON做檢查,以確保params對象存在,並確保用戶名參數退出。

0

如果您只是想將一個JSON塊發送到服務器,則不應使用鍵值對,而只需將數據作爲StringEntity發佈。

HttpPost request = new HttpPost(api_call); 

    request.setHeader("Content-Type", "text/javascript"); 
    request.setEntity(new StringEntity(jsonString); 

    httpClient.execute(request); 
1

爲JSON的創建模型類,與您的數據進行初始化。然後使用Google Gson將其轉換爲Json,也可以從Json轉換回對象。這裏還有兩個鏈接可以讓你的生活更輕鬆地使用Json。 在線Json編輯器。你可以檢查生成的json格式是否正確。 http://www.jsoneditoronline.org/ 和JSON來生成POJO(型號類生成器) http://www.jsonschema2pojo.org/

+0

謝謝馬利克!這是一個非常古老的問題。當我剛開始學習Android編程時,我不喜歡它。 :) – Xarialon 2014-10-24 04:50:09

相關問題