json缓存模式架构

时间:2011-06-16 18:51:18

标签: c# asp.net json

我有一个名为MyObject的对象模型,我正在序列化为json字符串,我将该字符串存储在DB中。我想将几个这些对象发送到页面。

当对象从数据库中出来时,它们被放入一个名为JsonCache的对象列表中,如下所示:

    public class JsonCache
    {
      public int ObjectID {get;set;}
      public byte ObjectStatus {get;set;}
      public string MyObjectInJsonFormat {get;set;}
    }

List<JsonCache> MyListOfMyObjects = new List<JsonCache>();

MyObjectInJsonFormat是包含MyObject所有属性的字符串(9个嵌套对象列表。) 在将此列表发送到页面之前,我使用这样的简单序列化程序对其进行序列化:

JavaScriptSerializer ObjectSerializer = new JavaScriptSerializer();
string LeadsToPage = ObjectSerializer.Serialize(MyListOfObjects);

然后我把这个字符串放在一个名为MyDiv的div内的aspx文字中。

在客户端页面中,我写了这个javascript:

var ObjectsFromServer = $('#MyDiv').html();
ObjectsInJson = eval(ObjectsFromServer);

问题是ObjectsInJson是一个包含JsonCache对象模型的数组,其字符串为ObjectInJsonFormat。当然,我可以使用递归eval但这不是我想要的。我要做的是让ObjectInJson成为MyObject的数组。

我需要做些什么来改变这项工作?

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

您可以为JsonCache创建一个自定义序列化程序,如JavaScriptConverter,并为MyObjectInJsonFormat执行一些特殊操作。