2017-01-26 5 views
0

J'ai créé un nouveau chemin sur le noeud final du catalogue. Il est supposé accepter une représentation JSON d'un produit et l'ajouter à la base de données. Mais lorsque je mets le JSON dans le corps du message, je le mets àComment mettre en forme JSON pour Broadleaf Commerce API REST - Wrapper est les membres sont null?

Il ne l'enregistre pas dans mon emballage. Mon JSON ressemble à ceci:

{ 
    "id": 1, 
    "name": "Sudden Death Sauce", 
    "longDescription": "As my Chilipals know, I am never one to be satisfied. Hence, the creation of Sudden Death. When you need to go beyond... Sudden Death will deliver! ", 
    "retailPrice": { 
    "amount": "10.99", 
    "currency": "USD" 
    }, 
    "primaryMedia": { 
    "id": 101, 
    "title": "Sudden Death Sauce Bottle", 
    "url": "/cmsstatic/img/sauces/Sudden-Death-Sauce-Bottle.jpg", 
    "altText": "primary" 
    }, 
    "active": true, 
    "activeStartDate": "2017-01-25T16:32:36.993-0500", 
    "manufacturer": "Blair's", 
    "defaultCategoryId": 2002, 
    "productAttribute": [ 
    { 
     "id": 1, 
     "productId": 1, 
     "attributeName": "heatRange", 
     "attributeValue": "4" 
    } 
    ], 
    "media": [ 
    { 
     "id": 102, 
     "title": "Sudden Death Sauce Close-up", 
     "url": "/cmsstatic/img/sauces/Sudden-Death-Sauce-Close.jpg", 
     "altText": "alt1" 
    }, 
    { 
     "id": 101, 
     "title": "Sudden Death Sauce Bottle", 
     "url": "/cmsstatic/img/sauces/Sudden-Death-Sauce-Bottle.jpg", 
     "altText": "primary" 
    } 
    ] 
} 

Ai-je rien manqué? Je mets un point d'arrêt et ça me va bien. Le wrapper est instancié mais tous les membres sont null.

Répondre

1

Vous devez annoter le paramètre wrapper avec @RequestBody et ajouter un accepts sur votre @RequestMapping:

@RequestMapping(value="product",method=RequestMethod.POST, accepts="application/json") 
public ProductWrapper addProduct(HttpServletRequest request, @RequestBody ProductWrapper wrapper){ 
    return insertProduct(request, wrapper); 
} 

Lorsque vous envoyez votre demande, assurez-vous d'envoyer un en-tête Content-Type ainsi, comme Content-Type=application/json de sorte que le printemps le sérialisera de manière appropriée.

+0

Merci qui a fait l'affaire. –