当前位置: 首页 > 知识库问答 >
问题:

用javascript将servlet传递的复杂对象存储到数组中

翁翰墨
2023-03-14
var locations = new Array();
<c:forEach items="${photosName}" var="photo" varStatus="loop">
    locations["${loop.index}"] = "${photo}";
</c:forEach>
locations[i].latitude
locations[i].longitude
locations[i].accuracy
var locations = new Array();
<c:forEach items="${photosName}" var="photo" varStatus="loop">
    locations["${loop.index}"] = JSON.stringify("${photo}");
</c:forEach>
alert("latitude: "+locations[0].latitude+ " longitude: "+locations[0].longitude);

jsp中的Photo对象由此类表示:

@Entity
public class Loc implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private long id;
    private double latitude;
    private double longitude;
    private long time;
    private double accuracy;
    private int processed;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public double getLatitude() {
        return this.latitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    public double getLongitude() {
        return this.longitude;
    }

    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    public long getTime() {
        return this.time;
    }

    public void setTime(long time) {
        this.time = time;
    }

    @Override
    public String toString() {
        return "latitude: " + latitude + " longitude: " + longitude + "time: "
                + time;
    }

    public double getAccuracy() {
        return accuracy;
    }

    public void setAccuracy(double accuracy) {
        this.accuracy = accuracy;
    }

    public int getProcessed() {
        return processed;
    }

    public void setProcessed(int processed) {
        this.processed = processed;
    }
}

共有1个答案

戈宏义
2023-03-14

尝试位置[“${loop.index}”]={json.stringify(“${photo}”)};。然后您可以访问您所写的属性:

locations[i].latitude
locations[i].longitude
locations[i].accuracy

注意:photo是JSONObject的字符串表示。像这样:

JSONObject jsonPhoto = gson.toJson(photoObj) //photoObj is instance of your java photo object class
String photo = jsonPhoto.toString();

要将对象转换为json对象,可以使用GSON库。这里是一个很好的教程的链接。

<%@ page import="com.google.gson.Gson" %>   
<%GSON gson = new Gson();%>    
var photoArray = JSON.stringify(<%=gson.toJson(phtoObjects).toString()%>);
 类似资料:
  • 在一个DOM操作练习中,我学习了如何使用纯JavaScript创建HTML元素。也就是像这样的东西: 我必须创建一个函数,允许用户将对象作为参数传入,以设置元素的属性。这个对象包含任意数量的键(属性)和值(属性值)。即属性可以是“src”,值可以是“image.jpg”。类似的东西。用户可以在调用函数时向此对象传递任意多的属性。 附带说明,对代码和JS都很新,请原谅我:P

  • 问题内容: 我试图将对象数组从js传递到rails 滑轨 在这里,记录器语句总是让我把 我期望下面的登录轨道。 问题答案: 您应该在Javascript中使用Javascript,该Javascript以数组或哈希作为参数(因为它们是唯一有效的JSON构造)。它返回一个形式,该形式是序列化为JSON的Javascript对象。 在Ruby方面,您将收到JSON编码的字符串,因此需要(在Rails中

  • 问题内容: 我正在尝试使用javascript将查询集从Django传递到模板。 我尝试了不同的方法来解决此问题: 1.普通方法-由于命名法[&gt Object:ID&lt,&gt Object:ID&lt,…],Javascript试图解析对象一团糟 Django视图 模板HTML + JS 2. JSON方法-Django无法将对象列表转换为不可序列化的JSON字符串 Django视图 模板

  • 问题内容: 我在形成文字时可能做错了。假设我有一个简单的存储过程,如下所示: 的定义为: 执行这样的查询: 产生以下结果集: 代替: 我的文字是否有问题,还是应该以其他方式访问该字段?感谢您的任何建议。 问题答案: 指定输入的方式看起来不错,因为使用行和数组构造器语法可以观察到相同的行为: 和: 产生: 如果添加: 在循环内部,输出为: 表明您实际上正在获取一个元组,其中“ message”是您期

  • 我只想发送数据对象var arrImg中包含的一个字段。我要推送的第一件事是var arrImg的image字段,其条件是checked为true,并将其放入crudData:{'image':[]}上的新数组映像中。然后,第二步,我想在条件为checked为true的情况下,将var arrImg的字段名推送到crudData:{'name':[]}上的新数组名中。选中值首先设置为false,但

  • 问题内容: 我在JavaScript中有以下复杂对象,其中包含过滤器选项 我想传递给ASP.NET MVC4 WebApi控制器GET 使用jQuery ajax调用 ASP.NET控制器方法中的“过滤器”对象为“空”。如果我将其更改为POST,则过滤器对象将正确传递。有没有办法将复杂的对象传递给GET? 我不想将参数分离到URL,因为会有许多参数使效率低下,很难拥有可选参数,并且即使添加了新参数