spring mvc ajax json,java - spring mvc ajax json malformed sometimes - Stack Overflow

libraries used

spring.4.3.4 jar

jquery 1.9.1

gson-2.2.2 jar

Using JDBCTemplate

Controller

@RequestMapping(value = "user/getApmcBudgTransData", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")

public @ResponseBody String getUserLevelMasterDetails(HttpServletRequest request,HttpServletResponse res) {

ModelAndView model = new ModelAndView();

String yrmstid=request.getParameter("finyrMstid");

String apmcid=request.getParameter("apmcid");

String sendToOfc = request.getParameter("sendToOfc");

String opFlag = request.getParameter("opFlag");

String formType = request.getParameter("formType");

ArrayList apmcBudgtrandata=budgetService.getApmcBudgTransData(apmcid, yrmstid, sendToOfc, opFlag, formType);

Gson gson = new Gson();

return gson.toJson(apmcBudgtrandata);

}

JSP ajax call

$.ajax({

url:"${pageContext.request.contextPath}/user/getApmcBudgTransData",

type:'post',

dataType: 'json',

async:false,

data: {

finyrMstid :lastyr,

apmcid : pkvalue,

sendToOfc : "APMC",

opFlag : flag,

formType : "S"

},

success: function(resp) {},

error: function(err) {}

});

spring-servlet.xml

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:util="http://www.springframework.org/schema/util"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-2.5.xsd">

class="org.springframework.web.servlet.mvc.WebContentInterceptor">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

The ajax call is receiving a large amout of utf-8 json data from controller.

The json is wellformed in the controller each and every time.

When the control is returned back to ajax call, the first time, the json is malformed and error function is called.

The second and each subsequent time though, the json is wellformed and success function is called.

Firebug screenshot

Malformed json

[

{

"finYrID": "3",

"budgetTransId": "18127210",

"operationId": "",

"commonTrno": "165",

"suppliBudgYn": "N",

"tranDate": "10/05/2016",

"srNo": "1",

"apmcGlMstId": "1",

"apmcMstId": "165",

"lastYrActualAmt": "2741406",

"currYrActualAmt": "2562",

"currYrExpAmt": "0",

"currYrTotExpAmt": "2562",

"apmcCurrBudgAmt": "2379",

"disCurrBudgAmt": "2379",

"divCurrBudgAmt": "2379",

"apmcRemark": "",

"distRemark": "",

"divRemark": "",

"msambRemark": "शिफारस आहे",

"sanctionRemark": "",

"suppBudAmt": "0",

"suppDistBudgAmount": "",

"suppDivBudgAmount": "",

"suppHoBudgetAmt": "",

"suppBudgetRemark": "",

"suppDisRemark": "",

"suppDivRemark": "",

"suppHoRemark": "",

"suppSancRemark": "",

"printPosition": "",

"forwardStatus": "P",

"lastYrBudgamt": "3035810",

"msambCurYrBudgAmt": "2379",

"glName": "सुरवातीची रोख शिल्लक ",

"abrxFlg": "INCOME",

"parentId": "",

"allowEntry": "Y",

"apmcTranDate": "12/05/2016",

"distTranDate": "24/05/2016",

"divTranDate": "06/06/2016",

"hoTranDate": "19/07/2016",

"sanctionDate": "20/09/2016",

"docAppFlag": "",

"suppBudgTrno": "100165",

"apmcSuppTranDate": "",

"distSuppTranDate": "",

"divSuppTranDate": "",

"hoSuppTranDate": "",

"sancSuppDate": "",

"suppDocAppFlag": "Y",

"budgSendToOffice": "SANCTION",

"suppSendToOffice": "APMC",

"suppCurYrActualAmt": "2379",

"suppCurYrExpectedAmt": "0",

"suppCurYrTotExpectedAmt": "2379"

},

{

"finYrID": "3",

"budgetTransId": "18127209",

"operationId": "",

"commonTrno": "165",

"suppliBudgYn": "N",

"tranDate": "10/05/2016",

"srNo": "181",

"apmcGlMstId": "181",

"apmcMstId": "165",

"lastYrActualAmt": "0",

"currYrActualAmt": "0",

"currYrExpAmt": "304852",

"currYrTotExpAmt": "304852",

"apmcCurrBudgAmt": "438307",

"disCurrBudgAmt": "1238307",

"divCurrBudgAmt": "1148307",

"apmcRemark": "",

"distRemark": "898751.00",

"divRemark": "",

"msambRemark": "",

"sanctionRemark": "",

"suppBudAmt": "315514",

"suppDistBudgAmount": "0",

"suppDivBudgAmount": "0",

"suppHoBudgetAmt": "0",

"suppBudgetRemark": "",

"suppDisRemark": "",

"suppDivRemark": "",

"suppHoRemark": "",

"suppSancRemark": "",

"printPosition": "",

"forwardStatus": "P",

"lastYrBudgamt": "0",

"msambCurYrBudgAmt": "898751",

"glName": "अखेरची बँक शिल्लक ",

"abrxFlg": "EXPENSES",

"parentId": "",

"allowEntry": "Y",

"apmcTranDate": "12/05/2016",

"distTranDate": "24/05/2016",

"divTranDate": "06/06/2016",

"hoTranDate": "19/07/2016",

"sanctionDate": "20/09/2016",

"docAppFlag": "",

"suppBudgTrno": "100165",

"apmcSuppTranDate": "",

"distSuppTranDate": "",

"divSuppTranDate": "",

"hoSuppTranDate": "",

"sancSuppDate": "",

"suppDocAppFlag": "Y",

"budgSendToOffice": "SANCTION",

"suppSendToOffice": "APMC",

"suppCurYrActualAmt": "957593",

"suppCurYrExpectedAmt": "",

"suppCurYrTotExpectedAmt": "957593"

}

]

I cannot for the love of programming figure out why this is happening.