2017-10-03 6 views
2

Je développe l'application avec le support de mongoDB dans android. Je veux créer MongoID à partir du code Java et l'envoyer à mon serveur.Comment créer MongoID dans le code android?

Voici mon code

Je veux créer cette JSON

{ 
"_id" : ObjectId("59b7bcdf92e706382b00009f"), 
"user_id" : "6bb82a99-bccd-4868-a799-55e7d28f969c", 
"is_active" : false, 
"_slugs" : [ 
    "aaa" 
], 
"facility_name" : "aaa", 
"industry_id" : 1, 
"old_industry_id" : 1, 
"established_date" : "1994-06-01", 
"summary" : "this is test", 
"facility_website" : "www.xxx.com", 
"contact" : { 
    "_id" : ObjectId("4637gdff92jhsgd378364y"), 
    "info_type" : "PROFILE_INFO", 
    "name" : "xxxxxxxxxx", 
    "mobileNumber" : "xxxxxxxxx", 
    "email" : "[email protected]", 
    "shown_on_profile" : true 
}} 

Mais je reçois ce Json de mon code java.

{ 
"_id" : ObjectId("59b7bcdf92e706382b00009f"), 
"user_id" : "6bb82a99-bccd-4868-a799-55e7d28f969c", 
"is_active" : false, 
"_slugs" : [ 
    "aaa" 
], 
"facility_name" : "aaa", 
"industry_id" : 1, 
"old_industry_id" : 1, 
"established_date" : "1994-06-01", 
"summary" : "this is test", 
"facility_website" : "www.xxx.com", 
"contact" : { 
    "_id" : "{}", 
    "info_type" : "PROFILE_INFO", 
    "name" : "xxxxxxxxxx", 
    "mobileNumber" : "xxxxxxxxx", 
    "email" : "[email protected]", 
    "shown_on_profile" : true 
}} 

problème est en "contact" objet

Voici mon code java

String _id = new JsonObject().toString(); // this is Gson.JsonObject() object 
JSONObject contact = new JSONObject(); 
contact.put("_id", _id); 
contact.put("info_type", "PROFILE_INFO"); 
contact.put("name", "User-1"); 
contact.put("mobileNumber", "xxxxxxxxxx"); 
contact.put("email", "[email protected]"); 
contact.put("shown_on_profile", true); 

Répondre

0

Comme dit par @fandro j'ai résolu mon problème.

serveur me donne des données MongoDB comme ce

{"_id":{"$id":"59b7bcdf92e706382b00009f"}} 

Je peux accéder à ces données en utilisant ce code, Voici mon code Android

ID = jsonData.getJSONObject("_id).getString("$id"); 

Pour générer de nouveaux ID j'ai créé JSONObject vide Android et transmis à mon serveur.

_id = new JSONObject().put("$id", ""); 

Sur mon serveur, je vérifie id et si elle est vide alors je produis nouvelle forme de MongoId ce code,

<?php 
$_id = $_POST['_id']; 
if ($_id['$id'] == "") 
$_id = new MongoID(); 
?> 
1

Le MongoId est généré automatiquement par le serveur. Ce que vous devez faire, c'est d'envoyer votre contact sans le MongoID. Le serveur va insérer les données dans la base de données et retourner le MongoID de cet élément que vous venez de créer, et vous pouvez renvoyer le contact entier ou seulement le MongoID à votre application Android pour l'utiliser.

+0

Mais dans mon cas, il y a beaucoup jsonObject.like JsonObject dans un autre JsonObject. – Mehul

+0

Vous avez donc besoin de le faire en plusieurs fois: insérez l'objet, récupérez l'objectID, envoyez le second Object avec l'ID précédent et récupérez l'ID Second Object ... – fandro

+0

@Mehul Ma solution vous a-t-elle aidé? – fandro