Création relation en Json

Bonjour à tous,
sous SwiftUi, je souhaites créer un objet, je passe donc mon body à l’aide de JSONSerialization, sauf que dedans j’ai une relation many to many que je dois également créer et je ne vois pas comment faire, en effet j’ai besoin de l’Id de mon objet pour créer la relation, alors que je ne l’ai pas encore créer et vis versa.
Si quelqu’un peut m’expliquer.

Hello il faut que tu créer un objet manyJSON = exemple

for many in manyJSON {
let id = many[« id »] as! Int
IDs.append(id)

Salut Dylan,
Je ne vois pas trop la solution que tu me propose, en fait dans la création de mon objet de dois créer un autre objet qui est la relation M2M :

jsonObject = ["status":"in progress", "user_created":currentUser.id, "date_created":dateFormatter.string(from: Date()), "content":descriptionContent, "station":currentUser.station?.id ?? "", "departure":currentUser.station?.service ?? "", "destinationDepartments":destinationDepartment, "logement":descriptionLogement, "title":title, "destinationCity":destinationCity, "date_register":"\(Date().toString()), "contributors": C'EST A CET ENDROIT QUE JE DOIS ENVOYER MA RELATION]

Je pense juste que je n’arrive pas a voir comment créer ma relation en même temps que mon objet

Hello @PapaRoack,
Dans mon cas, j’ai un champignon qui peut être cueilli sur plusieurs mois et des mois où on peut cueillir plusieurs champignons. Lorsque je demande le détail sur un champignon, ca me donne ça :

{
    "data": {
        "id": 8,
        "picking_period": [
            {
                "id": 37,
                "fungus_id": 8,
                "picking_period_id": 1
            },
            {
                "id": 38,
                "fungus_id": 8,
                "picking_period_id": 2
            },
            {
                "id": 39,
                "fungus_id": 8,
                "picking_period_id": 3
            },
            {
                "id": 40,
                "fungus_id": 8,
                "picking_period_id": 10
            },
            {
                "id": 41,
                "fungus_id": 8,
                "picking_period_id": 11
            },
            {
                "id": 42,
                "fungus_id": 8,
                "picking_period_id": 12
            }
        ]
    }
}

L’ « id » est l’identifiant de ma classe intermédiaire, « fungus_id » l’identifiant de ma classe champignon, et « picking_period_id » l’identifiant de ma classe cueillette.

J’ai jamais essayé de faire un post pour créer une nouvelle relation de ce type mais je pense que tu vas devoir donner l’id des deux tables que tu connais, l’id de la table intermédiaire devrait être créé automatiquement par le système.

Salut,
Oui j’obtiens le même principe de réponse
Mais mon soucis est plus dans le POST
Je ne vois pas comment ajouter l’objet dans mon body.
Est ce que par exemple je peux créer un objet avec jsonEncoder et ensuite passer le data dans mon body?
Je ne vois pas trop comment faire :sweat_smile:

Hello,

Oui c’est bien ça !

Je te pousse un bout de code avec une requête en POST pour le login à mon webservice.

// Je crée une requête en post avec mon URL
request = http.Request("POST", Uri.parse(loginPath));
// J'ajoute une entête nécessaire pour du JSON
request.headers.addAll({"Content-Type": "application/json"});
// Je remplie mon body en encodant un JSON depuis une map <String, String>
request.body = jsonEncode(
          <String, String>{'email': finalUser, 'password': finalPassword});

Et après, j’envoi ma requête.

J’espère que ca va t’aider !!

1 « J'aime »

Yes ça marche merci à toi je vais essayer cela :relaxed: