为了账号安全,请及时绑定邮箱和手机立即绑定

使用循环引用对JavaScript对象进行Stringify(转换为JSON)

使用循环引用对JavaScript对象进行Stringify(转换为JSON)

慕后森 2019-10-09 15:39:15
我有一个包含循环引用的JavaScript对象定义:它具有引用父对象的属性。它还具有一些我不想传递给服务器的功能。我将如何序列化和反序列化这些对象?我读过,做到这一点的最佳方法是使用道格拉斯·克罗克福德(Douglas Crockford)的stringify。但是,我在Chrome中遇到以下错误:TypeError:将圆形结构转换为JSON编码:function finger(xid, xparent){    this.id = xid;    this.xparent;    //other attributes}function arm(xid, xparent){    this.id = xid;    this.parent = xparent;    this.fingers = [];    //other attributes    this.moveArm = function() {        //moveArm function details - not included in this testcase        alert("moveArm Executed");    }} function person(xid, xparent, xname){    this.id = xid;    this.parent = xparent;    this.name = xname    this.arms = []    this.createArms = function () {        this.arms[this.arms.length] = new arm(this.id, this);    }}function group(xid, xparent){    this.id = xid;    this.parent = xparent;    this.people = [];    that = this;    this.createPerson = function () {        this.people[this.people.length] = new person(this.people.length, this, "someName");        //other commands    }    this.saveGroup = function () {        alert(JSON.stringify(that.people));    }}这是我为这个问题创建的测试用例。这段代码中有错误,但是本质上我在对象中有对象,并且传递给每个对象的引用显示了创建对象时父对象是什么。每个对象还包含函数,我不想对其进行字符串化。我只想要诸如的属性Person.Name。如果发送回相同的JSON,如何在发送到服务器之前进行序列化和反序列化?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 851 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信