Android crea una cadena Json

Estoy intentando crear una cadena JSON en la aplicación de Android.

JSONArray jArrayFacebookData = new JSONArray(); JSONObject jObjectType = new JSONObject(); // put elements into the object as a key-value pair jObjectType.put("type", "facebook_login"); jArrayFacebookData.put(jObjectType); // 2nd array for user information JSONObject jObjectData = new JSONObject(); // Create Json Object using Facebook Data jObjectData.put("facebook_user_id", id); jObjectData.put("first_name", first_name); jObjectData.put("last_name", last_name); jObjectData.put("email", email); jObjectData.put("username", username); jObjectData.put("birthday", birthday); jObjectData.put("gender", gender); jObjectData.put("location", place); jObjectData.put("display_photo", display_photo_url); jArrayFacebookData.put(jObjectData); 

Que crea una cadena como esta

 [ { "type":"facebook_login" }, { "birthday":"06\/22\/1986", "first_name":"Harsha", "username":"harshamv", "location":"Bangalore, India", "email":"hmv2206@gmail.com", "last_name":"Mv", "gender":"male", "facebook_user_id":"1423671254", "display_photo":"http:\/\/graph.facebook.com\/1423671254\/picture?type=large" } ] 

Quiero crear una cadena JSON algo como esto

 [ "system":{ "type":"facebook_login" }, "data":{ "birthday":"06\/22\/1986", "first_name":"Harsha", "username":"harshamv", "location":"Bangalore, India", "email":"hmv2206@gmail.com", "last_name":"Mv", "gender":"male", "facebook_user_id":"1423671254", "display_photo":"http:\/\/graph.facebook.com\/1423671254\/picture?type=large" } ] 

 JSONObject jArrayFacebookData = new JSONObject(); JSONObject jObjectType = new JSONObject(); // put elements into the object as a key-value pair jObjectType.put("type", "facebook_login"); jArrayFacebookData.put("system", jObjectType); // 2nd array for user information JSONObject jObjectData = new JSONObject(); // Create Json Object using Facebook Data jObjectData.put("facebook_user_id", id); jObjectData.put("first_name", first_name); jObjectData.put("last_name", last_name); jObjectData.put("email", email); jObjectData.put("username", username); jObjectData.put("birthday", birthday); jObjectData.put("gender", gender); jObjectData.put("location", place); jObjectData.put("display_photo", display_photo_url); jArrayFacebookData.put("data", jObjectData); 

Esto le dará jsonObject, pero no la matriz, no veo ningún punto en el uso de JSONArray. JSONObject es mejor en este caso. Verá la siguiente salida como String

 { "system":{ "type":"facebook_login" }, "data":{ "birthday":"06\/22\/1986", "first_name":"Harsha", "username":"harshamv", "location":"Bangalore, India", "email":"hmv2206@gmail.com", "last_name":"Mv", "gender":"male", "facebook_user_id":"1423671254", "display_photo":"http:\/\/graph.facebook.com\/1423671254\/picture?type=large" } } 

Create JSON objects for the jArrayFacebookData (no JSONArray como ha tomado) y ponga jObjectType y jObjectData dentro de él.

Compruebe este método de objeto poner JSONObject .

Actualizar:

Su JSON está teniendo error:

Introduzca aquí la descripción de la imagen

JSON válido es:

 { "system": { "type": "facebook_login" }, "data": { "birthday": "06/22/1986", "first_name": "Harsha", "username": "harshamv", "location": "Bangalore, India", "email": "hmv2206@gmail.com", "last_name": "Mv", "gender": "male", "facebook_user_id": "1423671254", "display_photo": "http://graph.facebook.com/1423671254/picture?type=large" } } 

Solución final:

  try { JSONObject jArrayFacebookData = new JSONObject(); JSONObject jObjectType = new JSONObject(); jObjectType.put("type", "facebook_login"); JSONObject jObjectData = new JSONObject(); jObjectData.put("facebook_user_id", "2323"); jObjectData.put("first_name", "2323"); jObjectData.put("last_name", "2323"); //put other data here jArrayFacebookData.put("system", jObjectType); jArrayFacebookData.put("data",jObjectData); System.out.println("==========> Final output => "+jArrayFacebookData.toString()); } catch(Exception e) { } 

Cómo publicar json cadena.

 for(int i=0; i<iArr.size(); i++){ if(i==0){ st = "{\"userId\":" + iArr.get(i) + "}"; str += st; }else if(i>0 && i<iArr.size()-1){ st = ",{\"userId\":" + iArr.get(i) + "}"; str+=st; }else if(i==iArr.size()){ st = ",{\"userId\":" + iArr.get(i) + "}]}"; str+=st; } } String myPost = "{\"project\":{\"Name\":"+ "\""+ title + "\"" + ",\"Description\":" + "\""+ desc + "\"" + ",\"createdBy\":" + usrid + "" + ",\"startDate\":" + "\""+ startdate + "\"" + ",\"dueDate\":" + "\""+ duedate + "\"" + ",\"projectLeadId\":" + leadPosition + "" + ",\"QAId\":" + QAssurencePosition + "" + ",\"TotalHour\":" +"\""+ edtHour + "\""+ "},\"members\":["; myPost += str; myPost +="]}"; RequestPackage myPackage = new RequestPackage(); myPackage.setUri(getaddProject); myPackage.setMethod("POST"); myPackage.setParam("My Post",myPost+""); new MyTask().execute(myPackage); Toast.makeText(CreateProject.this,"Testing String: " + myPost,Toast.LENGTH_LONG ).show(); Log.d("My Post :",myPost); } 
  • Manejo de respuestas con Volley
  • Conexión de Android a localhost
  • Parse JSON sin sucesión de bloques Try-Catch
  • HttpGet con el cuerpo de la solicitud Android
  • E / Volley: BasicNetwork.performRequest: Código de respuesta inesperado 307 para url
  • JSON a clase Java
  • Cómo evaluar expresiones de usuario en un entorno limitado
  • Cómo validar las credenciales de inicio de sesión de usuario en android con PHP, MySql con la ayuda de json
  • Formato de fecha recuperado de un servicio
  • JSONException: no hay valor para XYZ al intentar getString ("XYZ")
  • Cómo mantener la posición de desplazamiento de listview cuando se actualiza
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.