Pracuję nad projektem Android, który potrzebuje JSONObject dla treści mojego żądania POST. Po oddaniu kluczy i wartości JSON mam następujący wiersz:Jak mogę usunąć klucz nameValuePairs z JSONObject?
{
"xxxx":"zzzzzzz",
"yyyy":"uuuuuuu"
}
ale serwer dostał następujące:
{
"name_value_pairs": {
"xxxx":"zzzzzzz",
"yyyy":"uuuuuuu"
}
}
Już spróbował JSONStringer ale to nie było naprawdę pomocne, ponieważ Content-Type
żądania to application/json
.
UPDATE
Nie próbuję skonstruować JSONObject bo to już zrobione za pomocą poniższego wiersza kodu (tak samo podane przez @osayilgan):
JSONObject jsonRequest = new JSONObject();
jsonRequest.put("xxxx", "zzzzzzz");
jsonRequest.put("yyyy", "uuuuuuu");
Tu nie ma problem. Opisany poniżej interfejs służy do komunikacji z serwerem.
public interface MyService {
@Headers({"Content-type: application/json",
"Accept: */*"})
@POST("/test")
void testFunction(@Body JSONObject jsonObject, Callback<Response> callback);
}
Serwer otrzymał żądanie z drugim JSON-em jako treścią, co jest niezadowalające. Zauważam, że klucz name_value_pairs
jest automatycznie dodawany do obiektu.
Czy ktoś wie, jak mogę to naprawić?
Czy możesz opublikować kod, którego używasz, aby uzyskać t on dwa bloki JSON? Domyślam się, że otrzymujesz zawartość 'name_value_pairs', a nie zawartość obiektu, który zawiera. – emerssso
Uaktualniam pytanie. Skonstruowałem pierwszy, ale klucz name_value_pairs jest automatycznie dodawany, gdy przekazałem JSONObject jako treść mojego żądania. – 13KZ
Nie chcę, aby klucz "nazwa wartości par" został dodany do mojego obiektu json. Masz pomysł, jak temu zapobiec? – Nil