2

PHPでこれを持っているとしましょう:

<?php

    $year = date('Y');
    $month = date('m');

    echo json_encode(array(

        array(
            'id' => 111,
            'title' => "Event1",
            'start' => "$year-$month-10",
            'url' => "http://yahoo.com/"
        ),

        array(
            'id' => 222,
            'title' => "Event2",
            'start' => "$year-$month-20",
            'end' => "$year-$month-22",
            'url' => "http://yahoo.com/"
        )

    ));

?>

asp .netでequivillantを取得するにはどうすればよいですか?

ユーザーがに行った場合のように、giveMeJson.aspx 私はそれをと同じように返したいと思いgiveMeSomeJson.phpます。

ありがとう

4

3 に答える 3

8

空の.aspxの背後にあるコード(Json.Netを使用):

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class giveMeSomeJson : System.Web.UI.Page
    {
        protected override void OnLoad(EventArgs e)
        {
            Response.ContentType = "text/json";

            var year = DateTime.Now.Year;
            var month = DateTime.Now.Month;

            Response.Write(JsonConvert.SerializeObject(new[]
                {
                    new
                    {
                        id = "111",
                        title = "Event1",
                        start = String.Format("{0}-{1}-10", year, month),
                        url = "http://yahoo.com/"
                    },
                    new
                    {
                        id = "222",
                        title = "Event2",
                        start = String.Format("{0}-{1}-20", year, month),
                        url = "http://yahoo.com/"
                    }
                }));
        }
    }
}

または、.aspxのコードだけで:

<%@ Page Language="C#" %>
<%@ Import Namespace="Newtonsoft.Json" %>
<script runat="server">
    string json = JsonConvert.SerializeObject(new[]
        {
            new
            {
                id = "111",
                title = "Event1",
                start = String.Format("{0}-{1}-10", DateTime.Now.Year, DateTime.Now.Month),
                url = "http://yahoo.com/"
            },
            new
            {
                id = "222",
                title = "Event2",
                start = String.Format("{0}-{1}-20", DateTime.Now.Year, DateTime.Now.Month),
                url = "http://yahoo.com/"
            }
        }); 
</script>
<%= json %>
于 2013-02-27T22:17:46.013 に答える
7

ASP.NET(多数あります)で出力に書き込むさまざまな方法に踏み込むことなく、JavaScriptSerializerまたはJSON.NETを使用して.NET配列をJSONにシリアル化し、それを出力に書き込むことができます。

JSON.NETでは、次のようになります。

Person[] arr = new[] { new Person { Name = "John" }, new Person { Name = "Jane" } };
string json = JsonConvert.SerializeObject(arr);

これで、json文字列を応答に書き込むことができます。Literalコントロールや構文を使用し<%= %>たり、応答オブジェクトに直接書き込んだりすることができます。

編集

最も簡単な例は次のとおりです。

<%@ Page Language="C#" %>
<%@ Import Namespace="Newtonsoft.Json" %>

<%
    Person[] arr = new[] { new Person { Name = "John" }, new Person { Name = "Jane" } };
    string json = JsonConvert.SerializeObject(arr);
%>
<%= json %>

これにより、PHPのようにページ自体ですべての作業が行われ、出力がページに書き込まれます。

于 2013-02-27T21:57:44.197 に答える
3

ASP.NET MVCを使用している場合は、

public JsonResult GetSomeJson()
{
    var myModel = getSomeModel
    return Json(myModel);
}

更新-それでウェブフォーム?私はウェブフォームをしませんが、それは次のようなものです

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public MyModel GetSomeJson()
{
  MyModel myModel = getSomeModel;
  return myModel;
}
于 2013-02-27T21:56:14.167 に答える