Bahar MVC bir @RequestParam için bir JSON yükü POST ve argümanları bir demet kabul eden bir DİNLENME bitiş noktası oluşturmak istiyorum nasıl ve bir JSON nesnesi. Bahar kontrolörü olarakBen <strong>Bahar Boot</strong> (en son sürümünü, <strong>1.3.6</strong>) kullanıyorum
curl -X POST http://localhost:8080/endpoint \
-d arg1=hello \
-d arg2=world \
-d json='{"name":"john", "lastNane":"doe"}'
Şu anda yapıyorum: Böyle bir şey
public SomeResponseObject endpoint(
@RequestParam(value="arg1", required=true) String arg1,
@RequestParam(value="arg2", required=true) String arg2,
@RequestParam(value="json", required=true) Person person) {
...
}
json
argüman bir Person nesnesine tefrika almaz. I String olarak json
tartışma yapmak ve kontrol yöntemi içinde yük ayrıştırmak Açıktır ki, bir
400 error: the parameter json is not present.
olsun, ancak meydan okuyan bu tür Spring MVC kullanarak noktası.
@RequestBody
kullanıyorum, ancak daha sonra JSON gövdesi dışındaki bağımsız değişkenleri POST etme olasılığını kaybedersem çalışır.
Spring MVC'de normal POST argümanlarını ve JSON nesnelerini "karıştırmak" için bir yol var mı?
ı don Bir yol olduğunu düşünmüyorum ve form kodlu veri ve json verilerini karıştırmanın iyi bir fikir olduğunu sanmıyorum. Birini veya diğerini kabul etmek isteyip istemediğinize karar verin. –
Pek çok API (Şerit, Ek, Stormpath), istek verilerini mantıksal olarak ayırmak için bu yaklaşımı kullanır (örneğin, bir arama yapıyorumsa, arama kriterlerini bir Json temsiline yerleştirebilir ve sayfa kodlama verilerini formda kodlanmış bitde tutabilirim şeklinde). Ama senin amacını görüyorum. – Luciano