1. ホーム
  2. asp.net

ASP.NETページからのJSONオブジェクトの返送

2023-10-31 05:33:30

質問

私の特定の状況では、私の問題に対する2つの解決策があります。私はどちらがより現実的であるかを見つけたい。この場合、私はサーバー側のコードからJSONオブジェクトを返すことによって私の目標を達成することもできますが、私はそれがどのように行われ、それを行う最良の方法が何であるかを知りません。

まず第一に、私はコードから返される応答が必要なだけなので、完全な aspx ページは必要ありません。そこで、私は Web サービス、ハンドラ、またはこれを行うための他の特定の方法を使用するのでしょうか?

この解決策は実現可能ですか。JSON 文字列は StringBuilder クラスを使って JSON 文字列を構築し、その文字列をターゲットの aspx ページに注入しますか?何か注意事項や気をつけるべきことがありますか?

お考えをお聞かせください。

よろしくお願いします。

ケマル

------------UPDATE !------------

userlist.aspxページにJSONオブジェクトがあり、それをjQueryで使用するとします...

{"menu": {
  "id": "color1",
  "value": "color",
  "popup": {
    "menuitem": [
      {"value": "Red"},
      {"value": "Green"},
      {"value": "Yellow"}
    ]
  }
}} // example taken from the json.org/example page

今、私は私のaspxページから新しいメニュー項目を追加したいとき、私は何をすべきか.... この方法は、私の質問がより具体的であると思います...

私のaspxコードで次のような新しい文字列を作成するとします。 "{"value": "Blue"} . これをターゲットページの既に存在するアイテムリストに注入するにはどうしたらよいでしょうか?それとも、これはこの種の状況に対する正しいアプローチではないのでしょうか? そうでない場合、他にどのように実現できるのでしょうか?

また、このリストに新しいアイテムが追加されたときにjQueryイベントを発生させたい場合、これはどのように実現されるのでしょうか?

------------2015年8月26日のUPDATE 2 ------------。

この質問をした時点では、この問題へのアプローチの仕方は別の側面を持っていました。この質問に対するアプローチは、明らかに、すでに存在するJSONを含めず、次のようなコードから新しいものを出力すべきなので、私は今、このテーマに習熟しており、最も投票された答えを喜んで受け入れることができます。 @DavGarcia も示唆しています。

どのように解決するのですか?

Page_Loadの中で、通常の出力を消去して、例えば独自の出力を書きたいでしょう。

string json = "{\"name\":\"Joe\"}";
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();

C#のオブジェクトをJSONに変換するには、次のようなライブラリを使用します。 Json.NET .

.aspxページにJSONを出力させる代わりに、Webサービス(asmx)またはWCFを使用することを検討してください。