如何将对象列表表示为json对象的数组

时间:2017-08-25 12:38:20

标签: java json spring-mvc arraylist data-structures

我正在使用java和spring mvc框架编写Web应用程序。 (我想指定一些点,然后将谷歌地图绘制在地图上)。

在我的java Controller中,我构建了对象列表,然后通过ModelAndView将其返回给我的客户端代码。

在我的视图中,我按如下方式访问此列表:

  <h1>List of Geo-Location points: </h1>

  <c:forEach items="${mapcontent}" var="point">
    ${point.latitude} ${point.longitude} ${point.message}
    <br />
  </c:forEach>

我对结果很满意,因为它会打印出我所有相关的结果。 像这样:

    33.9249 18.4241 This is a message 
    34.9249 18.4241 This is another a message 
    35.9249 18.4241 This is a quick message 

转到目前的难度,我需要以下列格式提供此传入数据:

    var markers = [
    {
      coordinates:{lat:-33.9811688, lng:18.644},
      message: 'Task completed at Stellenbosch Station'
    },
    {
      coordinates:{lat:-33.9811688, lng:19.644},
      message: 'Please report for duty'
    }
    ]

因此,我的问题是如何从服务器发送的对象列表转到java脚本中的json对象数组。

  // taglib solution that I am currently trying:
  Using taglib:
  <%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
  <h1>List of Geo-Location points: </h1>

  <c:forEach items="${mapcontent}" var="point">
    <!-- ${point.name} ${point.telephoneNumber} ${point.genericDateTime} -->

    <json:object>
      <json:array name="coordinates" var="coordinate" items="${point.coordinates}">
        <json:object>
          <json:property name="latitude" value="${item.latitude}"/>
          <json:property name="longitude" value="${item.longitude}"/>
        </json:object>
      </json:array>
    </json:object>
    <json:property name="message" value="${point.genericDateTime}"/>


  </c:forEach>

丹科!

1 个答案:

答案 0 :(得分:0)

之前面对它。我为此找到了json-taglib。

http://json-taglib.sourceforge.net/

Maven存储库:https://mvnrepository.com/artifact/atg.taglib.json/json-taglib/0.4.1