2017-04-27 103 views
0

我在控制台chrome中有这个: [{“id”:40,“endDate”:“2017-04-22”,“dataA”:“2017-04-19 “ ”NRC“:2, ”类型“: ”CO“, ”dataD“: ”2017年4月19日“, ”的startDate“: ”2017年4月20日“},{ ”ID“:40”,结束日期“:” 2017年4月26" 日, “数据A”: “2017年4月26日”, “NRC”:4 “tyoe”: “CP”, “dataD”: “2017年4月23日”,“的startDate “:”2017-04-25“},把json字符串放入一个javascript变量json

这个json字符串正在从调用DAO类的servlet调用以从db获取信息。 所以,这个字符串(动态地)从请求会话中传递到一个jsp页面中...然后我把它放入var DAYS = '${jsonArrayString}';然后console.log(DAYS);然后它打印上面的json字符串。因此,它可以打印更多的数据,然后打印两个数据。 它被放入一个javascript变量魔神此:

var DAYS = '${jsonArrayString}'; //That's what's on my console..and it comes from session into this jsp page 

我认为它必须通过一个foreach迭代,并以该格式打印。

var USER_DAYS = [ 

        { 
         id: value from jsonArrayString, 
         date: value from jsonArrayString, 
         title: value from jsonArrayString, 
         start: new Date(value from jsonArrayString), 
         end: new Date(value from jsonArrayString), 
         allDay: true, 
         className: 'done' 
        },    
       ]; 

我试图手动把价值和它的作品......这样的:

var USER_DAYS = [ 
     { 
      id: 1, 
      date: '2017-04-05', 
      title: 'CO', 
      start: new Date(2017, 3, 5), 
      end: new Date(2017, 3, 7), 
      allDay: true, 
      className: 'done' 
     }, 

我不知道烫把值从JSON字符串( 可是anythong ......超过2条记录)......为什么我需要遍历该json字符串。 我想在该格式只把数值,该变量(VAR USER_DAYS)

我尝试财产以后这样的,但它简化版,工作:

<c:forEach items="${jsonArrayString}" var="jsonArrayString"> 
        { 
         id: '${jsonArrayString.nrC}' , 
         date: '${jsonArrayString.dataD}' , 
         title: '${jsonArrayString.type}' , 
         startDate: '${jsonArrayString.startDate}', 
         endDate: '${jsonArrayString.endDate}', 
         allDay: true, 
         className: 'done' 
        }, 
</c:forEach> 
       ]; 

或像这样:

var USER_DAYS = [ 

        { 
         id: DAYS.nrC, 
         date: DAYS.dataD, 
         title: DAYS.type, 
         start: new Date(DAYS.startDate), 
         end: new Date(DAYS.endDate), 
         allDay: true, 
         className: 'done' 
        },    
      ]; 

如何做到这一点?

回答

0

尝试将json字符串解析为json对象。

var USER_DAYS = JSON.parse('${jsonArrayString}') 
0

JavaScript代码仅在客户端上运行,而JSP在服务器上。在页面呈现在服务器上时,您无法遍历JavaScript变量。

  • 如果您想为已经包含数据的页面提供服务,则应该将数据作为模型属性传递给JSP页面。要做到这一点,请看看这个post
  • 如果您想在数据加载到浏览器后使用数据填充页面,则必须使用JavaScript库(如jQuery)。在这种情况下,您必须向服务器发送请求以获取JSON格式的数据,然后您可以在客户端对其进行操作。