Cómo anidar objetos al crear JSON con JSONObject

Estoy tratando de codificar esta cadena para una solicitud POST . ¿Puede alguien decirme cómo puedo codificar

 {"jsonrpc": "2.0", "method": "Files.GetSources", "params":{"media":"music"}, "id": 1} 

Hasta ahora he

 JSONOjbect obj = new JSONObject(); obj.put("jsonrpc", "2.0"); obj.put("method", "Files.GetSources"); 

Pero no estoy seguro de cómo poner en el resto – ¿alguien puede ayudar?

Si usted está preguntando cómo pondría el objeto de params anidados allí, probablemente haría:

 JSONObject params = new JSONObject(); params.put("media", "music"); obj.put("params", params); 

Para usar una matriz (por sus comentarios a continuación), haría algo como esto:

 JSONArray properties = new JSONArray(); properties.put("resume"); properties.put("genre"); properties.put("studio"); ... JSONObject params = new JSONObject(); params.put("properties", properties); obj.put("params", params); 

Tienes dos opciones. Puede crear otro objeto que contenga "media":"music" y luego ponerlo en el JSONObject original o simplemente pasar toda esta cadena al constructor JSONObject y hacer que lo JSONObject .

 JSONOjbect obj = new JSONObject().put("jsonrpc", "2.0") .put("method", "Files.GetSources").put("id", 1) .put("params", new JSONObject.put("media", "music")); 

Chaining .put () como esto es posible porque put () devuelve el objeto en el que fue llamado – para este propósito exacto.

Bien, si usted tiene la secuencia antes de la mano, usted puede hacer simplemente

 JSONObject object = JSONObject.getJSONObject("{\"jsonrpc\": \"2.0\", \"method\": \"Files.GetSources\", \"params\":{\"media\":\"music\"}, \"id\": 1}"); 
  • Cómo tratar un objeto JSON grande en Android
  • Cómo crear datos JSON con cierta complejidad?
  • Se esperaba BEGIN_OBJECT pero era BEGIN_ARRAY en la línea 1 columna 2 (edición pequeña)
  • Extraño error de API de IAP de lotes de Google Play
  • Serializar objeto para enviar dentro de Intent en Android
  • Cuando se utiliza JSON en Fragmentos, la aplicación no responde en Android Development
  • Diferentes formas de publicar valores json en Server
  • ¿Cómo publicar datos en un Webservice usando JSON?
  • Error con datos JSON Android Argumento Ilegal HttpClient
  • ¿Cómo puedo hacer una petición Volley JSONObject con un objeto personalizado como parámetro?
  • Android - Https conexión a un servicio WCF de .NET da SSLException: "Ningún certificado de compañero"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.