我正在使用HTML5中的SVG创建一个白板应用程序,并使用javascript来使用SVG元素的Javascript数组来操纵svg元素,以便在白板上跟踪我的形状。
现在我正在尝试将所有内容保存在白板上,因此javascript中的每个SVG对象都使用ASP.NET MVC 3作为我的服务器端将数组转换为SQL。
我想通过序列化整个javascript数组并将其作为字符串保存到SQL来解决这个问题,然后在加载绘图时将其反序列化并将其添加到当前形状数组中。
现在我一直在尝试使用JSON.stringify来实现这一点,但没有运气,导致此错误
Uncaught TypeError: Converting circular structure to JSON
这是脚本代码
$("#save").click(function () {
var request = $.ajax({
url: "/Drawing/SaveDrawing",
type: "POST",
data: { s: JSON.stringify(shapes) },
dataType: "json"
});
});
欢迎所有想法,希望我的问题有点明确
答案 0 :(得分:4)
要序列化SVG,请不要使用JSON;而是使用XML:
var xml = (new XMLSerializer).serializeToString(mySVGElement);
答案 1 :(得分:0)
已经好几年了,所以我只是作为一个FYI添加这个,但是有一个非STD实现来序列化 What is the best way to serialize SVG from the client DOM?
它们现在可以标准化(XML序列化程序)