私は Apache Tomcat プロジェクトの開始時に独自の Web アプリケーションのプログラミングを開始しました。そのため、GET または POST に対して JSON の小さな断片で応答するサーブレットを作成すると、コードは次のようになります。
package com.stackoverflow.question;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.json.*;
public class SimpleServlet_json extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
JSONObject json = new JSONObject();
try {
json.put("Success", true);
json.put("Name", request.getParameter("name"));
} catch (JSONException e) {}
response.setContentType("application/json");
response.getOutputStream().print(json.toString());
}
}
私の質問は、「ASP.net の同等のメソッド/デザイン/新しいアイテムは何ですか?」です。
私はこれらを次のような WebForms として書いています。
最初に (基本的に空の).aspx
ファイル:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SimpleServlet_json.aspx.cs" Inherits="com.stackoverflow.question.SimpleServlet_json" %>
次に、この.cs
ファイル:
namespace com.stackoverflow.question
{
public partial class SimpleServlet_json : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var json = new JSONResponse()
{
Success = Request.QueryString["name"] != null,
Name = Request.QueryString["name"]
};
Response.ContentType = "application/json";
Response.Write(JsonConvert.SerializeObject(json));
}
}
[Serializable]
class JSONResponse
{
public string Name { get; set; }
public bool Success { get; set; }
}
}
しかし、仲間の C# プログラマーに非直感的なスタイルを採用するように求めているのではないかと密かに心配しています。
これらの例はやや不自然で、実際にはデータベース エンティティの JSON 表現として使用されます。たとえば、URLexample.com/product/1
は HTML バージョン (URL に関連付けられた JSP または ASPx ページを含む) でexample.com/product/1.json
あり、JSON 表現 (これらのクラスのいずれかを含む) です。私は URL 書き換えのファンです。