我想将jtml标记对象转换为javascript中的json对象,以便从javascript将它们发送到服务器。因为我必须在Ruby on Rails服务器上保存这些对象。这些HTML对象是canvas标记对象和使用CAKE API创建的图形对象。我使用了stringify函数,但它不起作用。 这是我的代码:
window.onload=function()
{
var CAKECanvas = new Canvas(document.body, 1000,1000);
var canvas=CAKECanvas.canvas;
var text=document.createElement('textarea');
text.id="text";
text.rows="100";
text.cols="200";
document.body.appendChild(text);
canvas.style.borderStyle="solid";
canvas.style.borderColor="black";
var rect= new Circle();
rect.radius=100;
rect.centered=true;
rect.cx=Math.random() * 500;
rect.cy= Math.random() * 300;
rect.stroke= false;
rect.fill= "red";
rect.xDir = Math.random() > 0.5?1:-1;
rect.yDir = Math.random() > 0.5?1:-1;
var obj=new Object;
var count = 0,k;
for (k in rect)
{
if (rect.hasOwnProperty(k))
{
count++;
obj[k]=rect[k];
}
}
alert(count);
rect.addFrameListener(function(t, dt)
{
this.cx += this.xDir * 50 * dt/1000;
this.cy += this.yDir * 50 * dt/1000;
if (this.cx > 550)
{
this.xDir = -1;
}
if (this.cx < 50)
{
this.xDir = 1;
}
if (this.cy > 350)
{
this.yDir = -1;
}
if (this.cy < 50)
{
this.yDir = 1;
}
}
);
CAKECanvas.append(rect);
var carAsJSON = JSON.stringify(obj); /////////////////NOT CONVERTING THE OBJECT OBJ INTO JSON OBJECT
}
答案 0 :(得分:1)
只有原始值(字符串,日期,布尔值,数字),对象和数组结构才能序列化为JSON。这意味着无法序列化其他主机对象(如RegExp或Canvas)。
简而言之,JSON仅限于数据('信息')。
因此,您必须使用.innerHTML保存创建的标记,或保存数据以便重新创建。