Disons que j'ai donné un JSONObject
{
"person":{"name":"Sam", "surname":"ngonma"},
"car":{"make":"toyota", "model":"yaris"}
}
Comment mettre à jour certaines des valeurs de JSONObject?
Comme ci-dessous:
String name = jsonArray.getJSONObject(0).getJSONObject("person").getString("name");
name = "Sammie";
Utilisez la méthode put: https://developer.Android.com/reference/org/json/JSONObject.html
JSONObject person = jsonArray.getJSONObject(0).getJSONObject("person");
person.put("name", "Sammie");
Supprimez la clé, puis ajoutez à nouveau la paire clé/valeur modifiée, comme indiqué ci-dessous:
JSONObject js = new JSONObject();
js.put("name", "rai");
js.remove("name");
js.put("name", "abc");
Je n'ai pas utilisé votre exemple mais conceptuellement, c'est pareil.
Bonjour, je peux vous suggérer une méthode universelle. utiliser la récursivité.
public static JSONObject function(JSONObject obj, String keyMain,String valueMain, String newValue) throws Exception {
// We need to know keys of Jsonobject
JSONObject json = new JSONObject()
Iterator iterator = obj.keys();
String key = null;
while (iterator.hasNext()) {
key = (String) iterator.next();
// if object is just string we change value in key
if ((obj.optJSONArray(key)==null) && (obj.optJSONObject(key)==null)) {
if ((key.equals(keyMain)) && (obj.get(key).toString().equals(valueMain))) {
// put new value
obj.put(key, newValue);
return obj;
}
}
// if it's jsonobject
if (obj.optJSONObject(key) != null) {
function(obj.getJSONObject(key), keyMain, valueMain, newValue);
}
// if it's jsonarray
if (obj.optJSONArray(key) != null) {
JSONArray jArray = obj.getJSONArray(key);
for (int i=0;i<jArray.length();i++) {
function(jArray.getJSONObject(i), keyMain, valueMain, newValue);
}
}
}
return obj;
}
Ça devrait marcher. Si vous avez des questions, allez-y… je suis prêt.