Преобразование объекта HTML TAG в объект JSON - PullRequest
1 голос
/ 23 мая 2010

Я хочу преобразовать объекты тегов html в объект json в javascript для отправки их на сервер из 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
}

1 Ответ

1 голос
/ 23 мая 2010

Только примитивные значения (строки, даты, логические значения, числа) и объекты и структуры массива можно сериализовать в JSON. Это означает, что другие хост-объекты, такие как RegExp или Canvas, не могут быть сериализованы.

Короче говоря, JSON ограничен data ('информация').

Итак, вам нужно будет либо сохранить созданную разметку с помощью .innerHTML, либо сохранить данные, чтобы их можно было воссоздать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...