2016-02-26 1 views
0

Je veux obtenir une chaîne json avec mon application play-framework() à partir d'une application angularJS.get json dans play-framwork

C'est ce que je vous envoie en fait:

{"in":[ 
     {"id":4,"ip":"192.168.0.20","pinSysNo":4,"pinSysName":"pg6","folderName":"gpio4_pg6","alias":"d","direction":"digital_in"}, 
     {"id":3,"ip":"192.168.0.20","pinSysNo":3,"pinSysName":"pb18","folderName":"gpio3_pb18","alias":"c","direction":"digital_out"} 
     ], 
"out":[ 
     {"id":1,"ip":"192.168.0.20","pinSysNo":1,"pinSysName":"pg3","folderName":"gpio1_pg3","alias":"a","direction":"digital_in"}, 
     {"id":2,"ip":"192.168.0.20","pinSysNo":2,"pinSysName":"pb16","folderName":"gpio2_pb16","alias":"b","direction":"digital_in"} 
      ] 
}:"" 

Je reçois toujours le code d'état 500 (erreur interne du serveur). Peut-être que certaines de mes routes ne sont pas correctes? routes:

POST  /networkInsertJson   controllers.NetworkController.InsertJson() 

mai dois-je un problème avec les 3 derniers caractères de la chaîne JSON?

Ceci est mon contrôleur:

public static Result InsertJson(){ 
    ObjectNode result = Json.newObject(); 
    JsonNode json = request().body().asJson(); 
    org.json.simple.parser.JSONParser parser = new JSONParser(); 
    JSONObject o = new JSONObject(); 
    try{ 
     o = (JSONObject) parser.parse(json.asText()); 
    }catch (Exception e){ 

    } 

    JSONArray ins = (JSONArray) o.get("in"); 
    JSONArray outs = (JSONArray) o.get("out"); 

    //I return the json back for testing 
    result.put("in", ins.toJSONString()); 
    return ok(result); 
} 

Pourriez-vous me aider à trouver l'erreur?

+0

Ce n'est pas json, c'est json avec une sorte de suffixe qui y est attaché, vous devez corriger la source pour envoyer json correct – Ferrybig

+0

Maintenant, j'ai Json. J'ai changé le type de contenu dans le contrôleur angulaire à "application/json". Mais le code d'état 500 est toujours là. –

+0

Je pense que @Ferrybig parlait du ':" "' dans la charge utile JSON. Le jeu commettra une erreur en essayant d'analyser cela. Avez-vous une erreur plus spécifique dans les journaux d'application ou dans la réponse 500? – lyjackal

Répondre

1

J'ai trouvé ma propre erreur dans ces lignes:

result.put("in", ins.toJSONString()); 

J'ai essayé d'insérer un tableau comme le contenu d'un élément JSON.