J'ai besoin de créer un objet json avec une clé et une valeur, où valeur est un tableau de valeurs. Comment pourrais-je faire ça?
{"propName":"favouriteObjectsIds",
"value":"[\"5c93f4cc3a6565000483248d\",\"5c9b82ad24b33b0004227322\"]"}
J'ai essayé comme ça
public void add(String propertyName, String[] values){
JsonArray array1 = new JsonArray();
for(int i = 0; i < values.length; i++){
array.add(values[i]);
}
JsonObject json = new JsonObject();
json.addProperty("propName", propertyName);
json.addProperty("value" ,array.toString());
}
mais array.toString () me donne une telle sortie
{"propName" : "favouriteObjectsIds",
"value": [
"5c93f4cc3a6565000483248d",
"5c93f7843a6565000483248e"
]
}
3 Réponses :
vous pouvez construire votre json avec ArrayList comme ceci:
public void add(String propertyName,ArrayList<String> list){
Map map = new LinkedHashMap();
map.put("propName", propertyName);
map.put("value", list);
JSONObject jObject = new JSONObject(map);
// convert JSONObject to JSON to String
String json = jObject.toString();
}
Vous devez utiliser .add au lieu de .addProperty pour JsonElements
public void add(String propertyName, String[] values){
JsonArray array = new JsonArray();
for(int i = 0; i < values.length; i++){
array.add(values[i]);
}
JsonObject json = new JsonObject();
json.addProperty("propName", propertyName);
json.add("value" ,array);
}
Tous les exemples ci-dessus créent deux propriétés, chacune avec une clé (nom) et une valeur. La première clé de propriété est "propName" qui a la valeur "favouriteObjectsIds", la deuxième clé de propriété est "value" qui a la valeur "[" 5c93f4cc3a6565000483248d "," 5c93f7843a6565000483248e "]"
Je suppose que vous préférez ayez ceci:
String myJson = "{\"favouriteObjectsIds\":[\"5c93f4cc3a6565000483248d\",\"5c93f7843a6565000483248e\"]}";
JSONObject jObject = new JSONObject(myJson );
JSONArray jArray = jObject.getJSONArray("favouriteObjectsIds");
Si c'est vrai, vous pouvez le faire de cette façon:
{"favouriteObjectsIds": [
"5c93f4cc3a6565000483248d",
"5c93f7843a6565000483248e"
]
}
non, ce n'est pas le cas. J'ai besoin d'un tel format json, car mon api reste en prend un pour la méthode de patch, mais merci pour la réponse.