recorrer - json array android studio
Android: crea una matriz JSON y un objeto JSON (7)
¿Cómo puedo crear un JSON con este formato en Android? Dado que la API que voy a pasar analizará JsonArray y luego el objeto. ¿O estaría bien si solo pasar un objeto json? Como tendré que insertar 1 transacción por llamada de servicio.
{
"student": [
{
"id": 1,
"name": "John Doe",
"year": "1st",
"curriculum": "Arts",
"birthday": 3/3/1995
},
{
"id": 2,
"name": "Michael West",
"year": "2nd",
"curriculum": "Economic",
"birthday": 4/4/1994
}
]
}
Lo que sé es solo el JSONObject. Como éste.
JSONObject obj = new JSONObject();
try {
obj.put("id", "3");
obj.put("name", "NAME OF STUDENT");
obj.put("year", "3rd");
obj.put("curriculum", "Arts");
obj.put("birthday", "5/5/1993");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Algunas ideas. Gracias
Aquí hay una versión más simple (pero no tan corta) que no requiere try-catch:
Map<String, String> data = new HashMap<>();
data.put("user", "[email protected]");
data.put("pass", "123");
JSONObject jsonData = new JSONObject(data);
Si desea agregar un jsonObject en un campo, puede hacerlo de esta manera:
data.put("socialMedia", (new JSONObject()).put("facebookId", "1174989895893400"));
data.put("socialMedia", (new JSONObject()).put("googleId", "106585039098745627377"));
Lamentablemente, necesita una prueba de captura debido al método put ().
SI quiere evitar try-catch nuevamente (no muy recomendable, pero está bien si puede garantizar cadenas json bien formateadas), puede hacer de esta manera:
data.put("socialMedia", "{ ''facebookId'': ''1174989895893400'' }");
Puede hacer lo mismo con JsonArrays, etc.
Aclamaciones.
He estado luchando con esto hasta que descubrí la respuesta:
Use la biblioteca GSON:
Gson gson = Gson(); String str_json = gson.tojson(jsonArray);`
Pasa el json array. Esto será auto-stringfied. Esta opción funcionó perfectamente para mí.
Puede crear un método y pasarle parámetros y obtener el json como respuesta.
private JSONObject jsonResult(String Name,int id, String curriculum) throws JSONException {
JSONObject json = null;
json = new JSONObject("{/"" + "Name" + "/":" + "/"" + Name+ "/""
+ "," + "/"" + "Id" + "/":" + id + "," + "/"" + "Curriculum"
+ "/":" + "/"" + curriculum+ "/"" + "}");
return json;
}
Espero que esto ayude.
Usa el siguiente código:
JSONObject student1 = new JSONObject();
try {
student1.put("id", "3");
student1.put("name", "NAME OF STUDENT");
student1.put("year", "3rd");
student1.put("curriculum", "Arts");
student1.put("birthday", "5/5/1993");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONObject student2 = new JSONObject();
try {
student2.put("id", "2");
student2.put("name", "NAME OF STUDENT2");
student2.put("year", "4rd");
student2.put("curriculum", "scicence");
student2.put("birthday", "5/5/1993");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONArray jsonArray = new JSONArray();
jsonArray.put(student1);
jsonArray.put(student2);
JSONObject studentsObj = new JSONObject();
studentsObj.put("Students", jsonArray);
String jsonStr = studentsObj.toString();
System.out.println("jsonString: "+jsonStr);
JSONObject obj = new JSONObject();
try {
obj.put("id", "3");
obj.put("name", "NAME OF STUDENT");
obj.put("year", "3rd");
obj.put("curriculum", "Arts");
obj.put("birthday", "5/5/1993");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONArray js=new JSONArray(obj.toString());
JSONObject obj2 = new JSONObject();
obj2.put("student", js.toString());
JSONObject jsonResult = new JSONObject();
try {
jsonResult.put("clave", "valor");
jsonResult.put("username", "iesous");
jsonResult.put("password", "1234");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("DEV","jsonResult->"+jsonResult);
public JSONObject makJsonObject(int id[], String name[], String year[],
String curriculum[], String birthday[], int numberof_students)
throws JSONException {
JSONObject obj = null;
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < numberof_students; i++) {
obj = new JSONObject();
try {
obj.put("id", id[i]);
obj.put("name", name[i]);
obj.put("year", year[i]);
obj.put("curriculum", curriculum[i]);
obj.put("birthday", birthday[i]);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jsonArray.put(obj);
}
JSONObject finalobject = new JSONObject();
finalobject.put("student", jsonArray);
return finalobject;
}