Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从jqGrid接收x-www-form-urlencoded格式的编辑/添加数据时,我需要application/json_Java_Jquery_Json_Jqgrid - Fatal编程技术网

Java 从jqGrid接收x-www-form-urlencoded格式的编辑/添加数据时,我需要application/json

Java 从jqGrid接收x-www-form-urlencoded格式的编辑/添加数据时,我需要application/json,java,jquery,json,jqgrid,Java,Jquery,Json,Jqgrid,我正在尝试将jqGrid链接到Java Rest服务。当我将编辑/添加数据从jqGrid发送到rest以处理DB CRUD操作时,我收到的数据如下: "nume=Alin&prenume=Dan&sefDepartament=Yes&position=position+2&joinYear=2015-08-11&oper=edit&id=2" 我需要以JSON格式接收它。我怎样才能做到这一点 这是我的Java代码: @Path("/update"

我正在尝试将jqGrid链接到Java Rest服务。当我将编辑/添加数据从jqGrid发送到rest以处理DB CRUD操作时,我收到的数据如下:

"nume=Alin&prenume=Dan&sefDepartament=Yes&position=position+2&joinYear=2015-08-11&oper=edit&id=2"
我需要以JSON格式接收它。我怎样才能做到这一点

这是我的Java代码:

@Path("/update")
public class UpdateDatabase {

@POST
public String updateDatabase(String data){

    System.out.println(data);
}
这是我关于服务器连接的jqGrid设置:

 grid.jqGrid({
    pager: '#pager', 
    mtype: "POST",
    url: "/RestWithDatabaseConnection/rest/fetchData",
    editurl:'/RestWithDatabaseConnection/rest/update',
    datatype: "json",

请告诉我是否应该添加一些其他信息。

要发送JSON格式编码的编辑结果,您应该

  • 在HTTP头中设置
    内容类型:application/json
  • 使用
    JSON.stringify
    对发布的数据进行编码
  • 如果您使用免费jqGrid,则可以使用以下
    inlineEditing
    选项,这是jqGrid的选项(与
    editurl
    处于同一级别)

    如果使用旧的jqGrid版本,您可以使用jqGrid选项
    ajaxRowOptions
    serializeRowData
    ,方式几乎相同:

    ajaxRowOptions: { contentType: "application/json" },
    serializeRowData: function (postData) {
        return JSON.stringify(postData);
    }
    
    免费jqGrid支持
    jqGridInlineSerializeSaveData
    事件作为
    serializeSaveData
    serializeRowData
    回调的替代。它在更高级的场景中很有帮助。由于兼容性原因,免费jqGrid也支持选项
    ajaxRowOptions
    serializeRowData


    我建议您考虑使用免费JQGRAD4.12.0或GITHUB的最新源代码。有关主要新功能和错误修复的列表通常在中介绍。

    不清楚您使用哪种编辑模式(内联编辑、表单编辑或单元格编辑)。根据编辑模式的不同,您必须使用不同的选项将HTTP内容类型设置为
    application/json
    ,并使用
    json.stringify
    格式化数据。此外,了解使用哪个版本的jqGrid以及使用哪个fork可能很重要(,或版本为Hey Oleg的旧jqGrid,谢谢你的回复。我正在使用免费的jqGrid版本4.11.0和内联编辑模式。在这种情况下,我应该如何处理?Oleg,你是最好的!非常感谢。@IvanSt顺便说一句,我的祝贺!你现在有15个以上的声誉点,并且有权对stackoverflow的内容进行投票(每天对任何问题的答案进行大约30次投票)。这是最重要的权利,有助于搜索引擎(甚至谷歌)找到真正有用的信息,而不仅仅是包含“jqGrid”等许多单词的文本。通过投票,你将帮助其他人找到真正好的内容。你可以阅读更多内容。谢谢你提供的信息。我没有意识到这一点。每当我发现信息对我的学习有用时,我一定会投赞成票。
    ajaxRowOptions: { contentType: "application/json" },
    serializeRowData: function (postData) {
        return JSON.stringify(postData);
    }