1

ここに2つの関連するASP.NETWebサービスJSONの質問があります。N層で設計されたASP.NET2.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データセットidのみがあり、4にはNewデータセットのみがあります。

次に、jQueryを使用してこの応答を処理します。Oldそして、データセットとデータセットの存在に基づいてNew、適切なページ要素を生成します。

OldDataとのソースはNewData2つの異なるテーブルにあります。それで、これは可能ですか?


質問2:
さらに、ASP.NET Webサービスで2つの異なるオブジェクト構造を持つJSON文字列を返すことは可能ですか?例。

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

基本的に私がやりたいのは、サーバーに1つのリクエストを行い、切り捨てられたデータセットを取得し(ページングに基づいて、フルセットの20レコードのみを返すなど)、ページ番号を生成できるようにフルレコードセットの数を取得することです(ページング)。データアクセス層で、レコードセットにreturnステートメントを使用し、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 に答える