2016-02-26 5 views
0

Я хочу получить строку json с помощью приложения play-framework() из приложения angularJS.get json in play-framwork

Это то, что я на самом деле отправить:

{"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"} 
      ] 
}:"" 

Я всегда получаю код состояния 500 (внутренняя ошибка сервера). Возможно, некоторые из ваших маршрутов неверны? маршруты:

POST  /networkInsertJson   controllers.NetworkController.InsertJson() 

Может ли у меня проблемы с последними 3 символов из строки JSON?

Это мой контроллер:

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); 
} 

Не могли бы вы помочь мне найти ошибку?

+0

Это не json, это json с каким-то суффиксом, прикрепленным к нему, вы должны исправить источник, чтобы отправить правильный json – Ferrybig

+0

Теперь у меня есть Json. Я изменил тип контента в угловом контроллере на «application/json». Но код состояния 500 все еще существует. –

+0

Я думаю, что @Ferrybig говорил о хвосте ': '" 'в полезной нагрузке JSON. Ошибка воспроизведения будет пытаться разобрать. У вас есть более конкретная ошибка из журналов приложений или из ответа 500? – lyjackal

ответ

1

я нашел свою собственную ошибку в этих линиях:

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

Я попытался вставить массив в качестве содержания элемента JSon.