Подтвердить что ты не робот

Как сделать вложенный объект Json в Java?

Я хочу запрограммировать вложенный объект JSON для моего устройства Android, но как? У меня есть только базовый опыт работы с Json, поэтому я был бы признателен, если бы кто-нибудь мог мне помочь со следующим кодом:

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

Edit:

Следующий код решает проблему:

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()));
4b9b3361

Ответ 1

Вам нужно создать JSON и добавить JSON в качестве параметра в POST. Для этого вы должны:

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

Вы можете использовать org.json.JSONObject, он включен в Android SDK.

Ответ 2

BasicNameValuePair - это то, что вы используете для добавления параметров POST. это немного непонятно, что вы просите. вы спрашиваете, как, учитывая, что JSON, представить значения параметров в качестве параметров post?

вам нужно сначала разобрать JSON, затем вытащить параметры, а затем добавить их в сообщение формы, например,

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

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

вы, конечно же, захотите сделать проверку на JSON, чтобы убедиться, что объект params существует, и чтобы гарантировать, что параметр имени пользователя завершен.

Ответ 3

Создайте класс модели для Json, инициализируйте его своими данными. Затем используйте Google Gson, чтобы преобразовать его в Json также из Json в Back to Object. а также вот две ссылки, которые делают вашу жизнь более простой для использования Json. Интернет-редактор Json. Вы можете проверить, что сгенерированный json находится в правильном формате или нет. http://www.jsoneditoronline.org/                     И Json для POJO Generated (Model Class Generator) http://www.jsonschema2pojo.org/

Ответ 4

Если вы просто хотите отправить блок JSON на сервер, вы не должны использовать пары значений ключа, а просто публикуйте данные как StringEntity.

    HttpPost request = new HttpPost(api_call);

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

    httpClient.execute(request);