1

这里有两个相关的 ASP.NET Web 服务 JSON 问题。我正在使用 N 层设计的 ASP.NET 2.0 应用程序。


问题 1:
我试图让我的 ASP.NET Web 服务生成一个多对象 JSON 响应,其中每个对象返回多个对象。我不确定我是否正确地解释了这一点,所以这是我正在寻找的一个例子。

[
    {"id":1, "CommentDataElement": "Value",
        "OldData":{ "Description": "ABC", "Status": "0" },
        "NewData":{ "ShortText": "Text here", "LongText": "More text here" }
    },
    {"id":2, "CommentDataElement": "Value",
        "OldData":{ "Description": "DEF", "Status": "1" },
        "NewData":{ "ShortText": "Text here", "LongText": "More text here" }
    },
    {"id":3, "CommentDataElement": "Value",
        "OldData":{ "Description": "GHI", "Status": "2" }
    },
    {"id":4, "CommentDataElement": "Value",
        "NewData":{ "ShortText": "Text here", "LongText": "More text here" }
    }
]

id的 1 和 2 都有OldNew数据集,而id3 只有一个Old数据集,id4 只有一个New数据集。

然后我会使用 jQuery 来处理这个响应。并且基于OldNew数据集的存在,我将生成正确的页面元素。

的来源OldDataNewData在两个不同的表中。那么这可能吗?


问题2:
此外,是否可以让 ASP.NET Web 服务返回具有两种不同对象结构的 JSON 字符串?例子。

[
    {...same as above, just cut out for brevity...}
    {"id":4, "CommentDataElement": "Value",
        "NewData":{ "ShortText": "Text here", "LongText": "More text here" }
    },
    {"Count":"100"}
]

基本上我想做的是向服务器发出一个请求,获取我的截断数据集(基于分页,说只返回完整集的 20 条记录)并获取完整记录集计数,以便我可以生成我的页码(分页)。在我的数据访问层上,是否可以对记录集使用返回语句并OUTPUT为完整计数使用参数?只是一个想法。


我很确定我在这里写的 JSON 是不正确的。如果您认为合适,请随时更新。任何帮助表示赞赏!谢谢!

4

1 回答 1

1

我能够解决这个问题。

基本上,您创建类,然后将类创建为列表。例如...

public class OldData
{
    private string _Description = string.empty;
    private string _Status = string.empty;

    public string Description { get {return _Description;} set {_Description = value; } }
    public string Status { get {return _Status;} set {_Status = value; } }
}

public class NewData
{
    private string _ShortText = string.empty;
    private string _LongText = string.empty;

    public string ShortText { get {return _ShortText;} set {_ShortText = value; } }
    public string LongText { get {return _LongText;} set {_LongText = value; } }
}

public class Results
{
    private int? _ID = null;
    private OldData _od = null;
    private NewData _nd = null;

    public int? ID { get {return _ID;} set {_ID = value; } }
    public OldData od { get {return _od;} set {_od = value; } }
    public NewData nd { get {return _nd;} set {_nd = value; } }
}

public class Results_List : List<Results>
{
    public Results_List() { }
}

然后,您可以创建该类的一个实例并使用数据库中的数据填充它。然后,JSON 响应的格式适合客户端逻辑。希望这对其他人有帮助。享受!

于 2012-05-29T15:44:43.770 回答