JSON formatting (Sending JSON via jQuery AJAX post to Java/Wicket server)
You have to use JSON.stringify:
$.ajax({
type: 'post',
data: JSON.stringify(lookup),
contentType: 'application/json',
dataType: 'json'
});
You should also specify 'application/json' as the contentType. By default jQuery will serialize objects with application/x-www-form-urlencoded (even if the contentType is application/json'). So you have to do it manually.
EDIT: Key for 'post' should be type, not method.
Jared
Web developer with extremely broad interests (technology, psychology, philosophy, religion, ethics, physics, astronomy, biology, business, marketing, design, etc.)
Updated on July 13, 2020Comments
-
Jared almost 4 years
I'm using jQuery to post JSON to a Java server, but I think my JSON must be wrong. Here's an example of my data and how I'm sending it:
var lookup = { 'name': name, 'description': description, 'items': [{ 'name': itemName, 'value': itemValue }] } $.ajax({ type: 'post', data: lookup, dataType: 'json' });
I'm using Wicket's AbstractAjaxBehavior to receive the data and would like to get a single JSON string that I can parse. When I get a Map of the parameters passed, the keyset looks like this:
items[0][name], description, name, items[0][value],
Obviously I can easily get the values for name and description, but the key for my array of items is messed up. I'm sure it's something simple, but I seem to keep running around the solution. Any suggestions? Thanks!