如何将JavaScript对象序列化为XML是最佳方法?

5

我正在寻找一种最好的方法将JavaScript对象序列化为XML,以便以Ajax方式发送到服务器。

仅仅通过谷歌搜索,我发现了一些选项,比如http://svn.mirekrusin.com/pub/javascript/to_xml/trunk/to_xml.js,但是是否有人有实际经验并且可以推荐任何特定的库呢?


不使用JSON的原因是什么?它(a) 是JavaScript的本地格式,(b)非常轻量级,(c)几乎存在于所有编程语言中的解析器/编码库中。 - Ry Biesemeyer
2个回答


0

我不知道是否有框架可以为您完成此操作,但是...

// Define class constructor
var SampleObject1 = function()
{
    this.name = 'MySampleObject';
    this.id = 1;
    this.seed = 1.009;
    this.createdAt = new Date();
    this.obj = null;
};

// Create instance of serializer
var serializer = new Ant.Serializer();

// Register SampleObject1, so serializer gets to know how to deal with such objects
serializer.register('SampleObject1', SampleObject1);

// Create data that will be serialized
var object = new SampleObject1();
object.obj = new SampleObject1();

// Serialize and get string representation
var xml = serializer.save(object).toString();

// Displays (formatting is changed):
// <SampleObject1>
//  <name type="string">MySampleObject</name>
//  <id type="number">1</id>
//  <seed type="number">1.009</seed>
//  <createdAt>
//      <Date value="2007-7-26T20:31:24.156"/>
//  </createdAt>
//  <obj>
//      <SampleObject1>
//          <name type="string">MySampleObject</name>
//          <id type="number">1</id>
//          <seed type="number">1.009</seed>
//          <createdAt>
//              <Date value="2007-7-26T20:31:24.156"/>
//          </createdAt>
//          <obj/>
//      </SampleObject1>
//  </obj>
// </SampleObject1>
WScript.echo(xml);

// Displays: MySampleObject
WScript.echo(serializer.load(xml).name);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接