我整个下午都在寻找答案,但我似乎找不到找到完成我所需要的最佳方法。
我的JSON字符串(从Web服务返回)在其中具有循环引用(#ref),它指向字符串中的$ id。现在我知道,如果使用jquery parseJSON,它将创建javascript对象,并且我可以访问属性la myObject.MyPropertyName。但是,当我进入#ref时,我不确定如何获取ID指向的对象(我认为该对象是由于反序列化而创建的…
我应该遍历对象及其所有子对象,直到找到它,还是有一种更简单的方法?
$.ajax({ type: "POST", url: "/Task.asmx/GetTask", data: "{'id':'" + '27' + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { _Data = $.parseJSON(msg.d ? msg.d : msg); _this.Company = _Data[0].t_Program.t_Company; _this.Program = _Data[0].t_Program; _this.Task = _Data[0]; }, complete: function () { } });
有问题的区域是_Data [0] .t_Program,因为它不返回对象而是返回
_Data[0].t_Program {...} $ref: "12"
我不完全知道获取带有$ id“ 12”的对象的最佳方法。根据下面的帖子,看来我应该遍历现有对象,但是我希望有一个做到这一点的jQuery函数…
非常感谢!
不,jQuery本身不具有解决从JSON转换的对象中的循环引用的功能。
我知道的唯一库是Dojo的dojox.json.refmodule。
dojox.json.ref
但是,您的服务器应用程序会以某种方式序列化该JSON。不要告诉我它使用的解决方案没有提供反序列化算法!