我在下面有这个ajax请求:
var data = {
id: 5,
name: 'Bilbo Baggins',
age: '27'
};
$.post('/editHim', data, function(returnedData) {
followTheDragonWithTheRing(returnedData);
});
我正在尝试使用Jersey API处理'数据'。我在文档中寻找响应,我看到的是从路径或查询字符串中提取数据的方法。
更新1:显示完整数据
var data = {
id: 5,
name: 'Bilbo Baggins',
age: '27',
// This data below must be persisted in another table that has a relationship of n .. n because another Hobbits can live in those addresses.
streetaddress1: 'The Shire',
stnumber1: '112',
streetaddress2: 'Valfenda',
stnumber2: '42'
};
$.post('/editHim', data, function(returnedData) {
followTheDragonWithTheRing(returnedData);
});
答案 0 :(得分:1)
通常您创建一个为数据结构建模的Data类
public class Data {
String id;
String name;
String age;
// getters/setters
}
然后您可以在输入法
中收到它@POST
@Consumes("application/json")
@Produces("text/plain")
public String editHim(Data data) {
return "data[" + data.getId() + ',' + data.getName() + ',' + data.getAge() + ']';
}
您可以使用方法的返回值以相同的模式生成JSON。
<强>更新强>
考虑到地址问题,我认为数据结构更清晰
var data = {
id: 5,
name: 'Bilbo Baggins',
age: '27',
// This data below must be persisted in another table that has a relationship of n .. n because another Hobbits can live in those addresses.
addresses: [{
streetaddress: 'The Shire',
stnumber: '112'
},{
streetaddress: 'Valfenda',
stnumber: '42'
}
]
};
服务器端的相应实体:
@Entity
public class Data {
@Id
String id;
String name;
String age;
@ManyToMany
List<Address> addresses = new ArrayList<>();
// getters/setters
}
和
@Entity
public class Address {
String streetaddress;
String stnumber;
// getters/setters
}
答案 1 :(得分:0)
如果返回的字符串是json字符串格式,则可以使用eval函数示例:
returnedData = eval('('+returnedData+')');
因此,如果返回数据的值类似于['id':1,'test':2],那么它将被转换为一个对象,允许您像这样访问它:
alert(returnedData['id']);