Java 如何将Json对象传递给servlet响应编写器?

Java 如何将Json对象传递给servlet响应编写器?,java,json,servlets,Java,Json,Servlets,我想把JSON数据传递给ajax函数。但它给了我一个异常 $(文档).ready(函数(){ $(“.count”).on('blur',function(){ var pack_count=$(this.val(); var order_id=$(this.attr('id'); $.post(“订单”操作=更新订单计数器和包装计数=“+pack\U计数+”&订单id=“+order\U id,函数(数据){ 警报(“更改成功!价格:”); $(“#sum”).html(“订单价格:+数据)

我想把JSON数据传递给ajax函数。但它给了我一个异常

$(文档).ready(函数(){
$(“.count”).on('blur',function(){
var pack_count=$(this.val();
var order_id=$(this.attr('id');
$.post(“订单”操作=更新订单计数器和包装计数=“+pack\U计数+”&订单id=“+order\U id,函数(数据){
警报(“更改成功!价格:”);
$(“#sum”).html(“订单价格:+数据);
var价格=数据[‘订单金额’];
var pack_count=数据['pack_count'];
document.getElementById('price')。value=price;
$(此).val(包装计数);
})
});

});您正在编写一个json字符串以输出,但您的标题默认设置为text/html或非json的内容。所以,在写入输出之前,需要设置适当的头

response.setContentType("application/json; charset=UTF-8"); # you may get rid of ; charset=UTF-8 as it is not critical 
然后,当您完成对输出调用的写入时

 out.flush();
更新:

你在上有个错误

String jsonData = "{ \"pack_count\" : \"" + selectedOrder.getPackageCount() + ", \"order_sum\" : " + countSum() + " }"; 
如果选择Order.getPackageCount()后缺少报价,请更改为Follow

String jsonData = "{ \"pack_count\" : \"" + selectedOrder.getPackageCount() + "\", \"order_sum\" : " + countSum() + " }";

令人困惑的是:您创建一个JSON字符串,将其转换为Gson,然后将其打印为字符串。。。为什么?打印字符串不好吗?我不太确定我需要通过什么。我只需要获得ajax函数中的值,只需尝试使用
out.print(jsonData)并调整内容类型,如下面答案中@printfmyname所述,这与实际问题有什么关系?[…]但是它给了我解析异常。如果你发送纯taxt,你不能访问数据['order_sum'],那么应该输出一个json对象而不是文本输出。您还可以使用$.parseJSON函数将文本解析为json数据。另外,你能从服务器上复制并粘贴回复吗?是的,但这与问题无关。如果json格式不正确或内容类型不匹配,JS将引发语法错误,ParseException正在服务器端发生。您的字符串jsonData=“{\'pack\\\”:\”+selectedOrder.getPackageCount()+,\“order\\”:“+countSum()+”}上有错误;您在选择order.getPackageCount()后缺少一个引号,更改为以下字符串jsonData=“{\'pack\u count\”:\”+selectedOrder.getPackageCount()+“\”,“order\u sum\”:“+countSum()+“}”;