2017-10-01 2 views
0

Je veux envoyer un JSONObject en utilisant retrofit 2 au serveur et je vous envoie ce genre d'objet JSON:android: objet JSON donner erreur

{"Order Summary": 
"[ 
    { 
    \ "ProductName\":\"Wine\", 
     \"ProductPrice\":\"500\", 
     \"ProductQuantity\":\"2\", 
     \"ProductCost\":\"1000\", 
     \"SellerId\":\"2\" 

    }, 
    { 
     \"ProductName\":\"Whiskey\", 
     \"ProductPrice\":\"1000\", 
     \"ProductQuantity\":\"1\", 
     \"ProductCost\":\"1000\", 
     \"SellerId\":\"1\" 

    } 
]"} 

en raison de laquelle je suis incapable d'analyser l'objet JSON

ce qui est le code source en utilisant iam: -

private void loadCart() 
    { 


     Cursor cursor = dbHelper.getCarProducts(); 
     cursor.moveToFirst(); 
     do { 

      JSONObject product = new JSONObject(); 
      try { 
       product.put("Sellerid",cursor.getString(cursor.getColumnIndex("_Sellerid"))); 
       product.put("ProductCost",cursor.getString(cursor.getColumnIndex("_Cost"))); 
       product.put("ProductQuantity",cursor.getString(cursor.getColumnIndex("_Quantity"))); 
       product.put("ProductPrice",cursor.getString(cursor.getColumnIndex("_Price"))); 
       product.put("ProductName",cursor.getString(cursor.getColumnIndex("_Name"))); 
       userCart.put(product); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     }while(cursor.moveToNext()); 
      Cart = new JSONObject(); 
      try 
      { 
       Cart.put("OrderSummary",userCart.toString()); 
      } 
      catch (Exception ex) 
      {}} 

quelqu'un pourrait me dire comment corriger cette erreur?

Répondre

2

Voici votre erreur

Cart.put("OrderSummary", userCart.toString()); 

Vous obtenez pur tableau JSON mais pourquoi êtes-vous convertir en chaîne?

Utilisation,

Cart.put("OrderSummary", userCart); // remove .toString() 

Modifier

En vérifiant votre code côté serveur, je pense que le problème est dans le fichier index.php (je ne suis pas expert en PHP)

$requestedData = $response->getBody(); 

Au lieu de $response, vous devez utiliser l'objet $request. Afin de corriger cela, référez-vous à ce StackOverflow thread ou référez-vous à ce official doc de Slim Framework.

Et d'envoyer une réponse JSON à partir de Slim Framework pour faire référence à ce StackOverflow thread.

Remarque: Lors de la déclaration de variables/objets Java, essayez de respecter les conventions de dénomination de varibales/méthodes Java. Au lieu de Cart utilisez cart, ceci élimine l'ambiguïté.

+0

J'ai fatigué les deux cas et dans les deux cas je reçois la même sortie, donc pourrait me donner une solution viable s'il vous plaît –

+0

Avez-vous supprimé la méthode '.toString()'. Ma solution devrait fonctionner. Selon votre JSON final, le problème est la méthode '.toString()'. Après avoir supprimé cela juste reconstruire le projet et réessayer. Et pouvez-vous élaborer «en raison de laquelle je suis incapable d'analyser l'objet JSON»? Où voulez-vous l'analyser? – Shashanth

+0

yup j'ai supprimé la chaîne à et essayé d'envoyer les données au serveur, mais cela ne m'a pas aidé –