如何在Java中创build一个嵌套的Json对象?

我想为我的Android设备编写一个嵌套的JSON对象,但是如何? 我只有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())); 

Solutions Collecting From Web of "如何在Java中创build一个嵌套的Json对象?"

您需要创build一个JSON ,并将该JSON添加为POST的参数。 要做到这一点你可能应该:

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

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

BasicNameValuePair是你用来添加POST参数的东西。 这是有点不清楚你问的。 你问如何,给定的JSON,提交param值作为后期参数?

你需要先parsingJSON,然后拉出参数,然后将它们添加到表单文章中,像这样,

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

您当然会想要检查JSON以确保params对象存在,并确保用户名参数退出。

为Json创build一个模型类,用你的数据初始化它。 然后使用Google Gson将其转换为Json,也从Json转换回Object。 这里还有两个链接,使您的生活更容易使用Json。 在线Json编辑器。 你可以检查生成的json格式是否正确。 http://www.jsoneditoronline.org/和Json生成POJO(模型类生成器&#xFF09; http://www.jsonschema2pojo.org/

如果你只是想发送一个JSON块到服务器,你不应该使用键值对,而只是将数据作为一个StringEntity发布 。

  HttpPost request = new HttpPost(api_call); request.setHeader("Content-Type", "text/javascript"); request.setEntity(new StringEntity(jsonString); httpClient.execute(request);