2013-11-23 217 views
-1

这篇文章是在JPA : Not able to persist record due to incorrect values being passed from client to serverJSON数据转换为Java对象

继续当我从服务器检索JSON输出值是按以下格式。

{"emp":[{"dept":{"deptNo":"10","dname":"ACCOUNTING","loc": 
    "NEW YORK"},"empno":"7934","ename":"MILLER","hiredate": 
    "1982-01-23T00:00:00+03:00","job":"CLERK","mgr":"7782","sal":"1300"}, 
    {"dept": 
    {"deptNo":"20","dname":"RESEARCH","loc":"DALLAS"},"empno":"7902","ename": 
    "FORD", 
    "hiredate":"1981-12-03T00:00:00+03:00","job":"ANALYST","mgr":"7566","sal": 
    "3000"},{"dept": 
    {"deptNo":"30","dname":"SALES","loc":"CHICAGO"},"empno":"7900","ename": 
    "JAMES", "hiredate": 
    "1981-12-03T00:00:00+03:00","job":"CLERK","mgr":"7698","sal":"950"}, 
    {"dept":{"deptNo":"20","dname":"RESEARCH","loc":"DALLAS"},"empno":"7876", 
    "ename": 
    "ADAMS","hiredate": 
    "1987-05-23T00:00:00+03:00","job":"CLERK","mgr":"7788","sal":"1100"}, 
    {"comm":"0","dept":  
    {"deptNo":"30","dname":"SALES","loc":"CHICAGO"},"empno":"7844","ename": 
    "TURNER","hiredate": 
    "1981-09-08T00:00:00+03:00","job":"SALESMAN","mgr":"7698","sal":"1500"}, 
    {"dept":{"deptNo":"10","dname":"ACCOUNTING","loc": 
    "NEW YORK"},"empno":"7839","ename":"KING","hiredate": 
    "1981-11-17T00:00:00+03:00","job":"PRESIDENT","sal":"5000"},   
    {"dept":"deptNo":"20","dname":"RESEARCH","loc":"DALLAS"},"empno":"7788", 
    "ename":"SCOTT","hiredate": 
    "1987-04-19T00:00:00+03:00","job":"ANALYST","mgr":"7566","sal":"3000"}, 
    {"dept":{"deptNo":"10","dname":"ACCOUNTING","loc": 
    "NEW YORK"},"empno":"7782","ename":"CLARK","hiredate": 
    "1981-06-09T00:00:00+03:00","job":"MANAGER","mgr":"7839","sal":"2450"}, 
    {"dept":"deptNo":"30","dname":"SALES","loc":"CHICAGO"},"empno":"7698", 
    "ename": 
    "BLAKE","hiredate": 
    "1981-05-01T00:00:00+03:00","job":"MANAGER","mgr":"7839","sal":"2850"}, 
    {"comm":"1400","dept": 
    {"deptNo":"30","dname":"SALES","loc":"CHICAGO"},"empno":"7654","ename": 
    "MARTIN","hiredate": 
    "1981-09-28T00:00:00+03:00","job":"SALESMAN","mgr":"7698","sal":"1250"}, 
    {"dept": 
    {"deptNo":"20","dname":"RESEARCH","loc":"DALLAS"},"empno":"7566","ename": 
    "JONES","hiredate": 
    "1981-04-02T00:00:00+03:00","job":"MANAGER","mgr":"7839","sal":"2975"}, 
    {"comm":"500","dept": 
    {"deptNo":"30","dname":"SALES","loc":"CHICAGO"},"empno":"7521","ename": 
    "WARD", "hiredate": 
    "1981-02-22T00:00:00+03:00","job":"SALESMAN","mgr":"7698","sal":"1250"}, 
    {"comm":"300","dept": 
    {"deptNo":"30","dname":"SALES","loc":"CHICAGO"},"empno":"7499", 
    "ename": 
    "ALLEN","hiredate":"1981-02-20T00:00:00+03:00","job":"SALESMAN","mgr": 
    "7698", 
    "sal":"1600"},{"dept": 
    {"deptNo":"20","dname":"RESEARCH","loc":"DALLAS"},"empno":"7369","ename": 
    "SMITH","hiredate": 
    "1980-12-17T00:00:00+03:00","job":"CLERK","mgr":"7902","sal":"800"}]} 

如果我想将数据插入到EMP表,如何将数据预计,我怎么能传递从客户端JSON服务器数据?

我试过以下格式,但它没有帮助。

function formToJSON() { 
     return JSON.stringify({ 
        "deptNo": "10", 
        "empno": "9004", 
        "ename": "JILL", 
        "job": "mfg", 
        "mgr": 34, 
        "sal": 456, 
        "comm": 900 
       }); 
      } 


$(document).ready(function() { 
       $("#btnSubmit").click(function() { 
        $.ajax({ 
         url: "Test1/rest/employee/", 
         type: "POST", 
         data: formToJSON(), 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 
         // console : 'ok', 
        }) 
       }); 
      }); 

当我从浏览器提交时,当我在服务器中接收时,deptNo为零。 服务器的预期情况如何?

回答

1

其实你发出错误JSON格式到服务器,这就是为什么你得到DEPTNO = 0

正确的JSON格式是这样的。

{ 
    "deptNo":{ 
      "deptNo":500, 
      "dname":"RESEARCH", 
      "loc":"DALLAS" 
     }, 
     "empno":7876, 
     "ename":"ADAMS", 
     "job":"1100", 
     "sal":"7788" 
    } 

您可以字符串化您的JSON如下

function formToJSON() { 

    var test = { empno:7876, ename:'ADAMS', job:1100, sal:7788, 
       deptNo:{deptNo:6, dname:'RESEARCH', loc:'DALLAS'} 
       }; 

    return JSON.stringify(test); 

    } 

JPA的延续后:Not able to persist record due to incorrect values being passed from client to server

也有这个JSON格式问题。

+0

非常感谢,这真的有助于解决问题,赞赏。 – user75ponic