【问题标题】:How to cast json to javascript object?如何将 json 转换为 javascript 对象?
【发布时间】:2016-12-26 23:01:21
【问题描述】:

我正在使用 asp.net C#。

我关注的地方

 CalendarInfo oInfo = new CalendarInfo { title = "Joe Bloggs", start = System.DateTime.Now.ToString("yyyy-MM-dd"), end = System.DateTime.Now.AddDays(3).ToString("yyyy-MM-dd") };
 var ser = new JavaScriptSerializer();
 JsonConvert.SerializeObject(oInfo);
 hdCalContent.Value = JsonConvert.SerializeObject(oInfo);
 ltCal.Text= JsonConvert.SerializeObject(oInfo); 

现在在客户端我要求在

[
    {
        title: 'All Day Event',
        start: '2016-06-01',
        end: '2016-06-10'
    },
    {
        title: 'Long Event',
        start: '2016-06-07',
        end: '2016-06-10'
    }
];

我的 C# 代码的问题是,当我使用它时,它会像 "title:"Joe Blog" 一样生成,但它不工作。 您能否准确地生成上述 JSON 在客户端可用的方式。 下面是我的客户端代码。

JSON.parse($("[id$='hdCalContent']").val())`

期待解决方案。

以下是有效的静态版本,可与 jquery full calander 一起使用。

  $('#calendar').fullCalendar({
        theme: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        defaultDate: '2016-06-12',
        editable: true,
        eventLimit: true, // allow "more" link when too many events
        events: [
            {
                title: 'All Day Event',
                start: '2016-06-01'
            },
            {
                title: 'Long Event',
                start: '2016-06-07',
                end: '2016-06-10'
            },
            {
                title: 'Birthday Party',
                start: '2016-06-13T07:00:00'
            },
            {
                title: 'Click for Google',
                url: 'http://google.com/',
                start: '2016-06-28'
            }
        ]
    });

在我的情况下,事件将来自 c# 代码的服务器端。因为我已经编写了代码,但它不起作用。

【问题讨论】:

  • 哪里不对? ""title": "Joe Blog" 是一个有效的 JSON 属性声明。
  • 为什么您的客户端需要无效的 JSON?同样,“它不起作用”是对您所看到的内容的非常不准确的描述。
  • @JonSkeet - 实际上我正在使用 fullcalander.js,其中事件有一个带有标题的日期来呈现。因此它具有访问我的问题中显示的值的属性事件。如果我传递的值与我的问题中显示的值相同,那么它就可以工作。但是我从服务器端传递了该值,但它不起作用。你能帮忙吗
  • 在我询问更多细节之后,您的唯一描述不是“它不工作”,不。而且你还没有解释为什么你认为你需要无效的 JSON(属性名称周围没有引号......)

标签: javascript c# asp.net json


【解决方案1】:

您需要您的对象位于数组或其他可枚举类型中。

CalendarInfo[] oInfo = new CalendarInfo[] { new CalendarInfo { title = "Joe Bloggs", start = System.DateTime.Now.ToString("yyyy-MM-dd"), end = System.DateTime.Now.AddDays(3).ToString("yyyy-MM-dd") }};


    hdCalContent.Value = JsonConvert.SerializeObject(oInfo);
    ltCal.Text= JsonConvert.SerializeObject(oInfo); 

【讨论】:

  • JokerManh- 但是如何将 C# 对象转换为字符串,然后再转换 Json?
猜你喜欢
  • 2018-04-28
  • 2020-01-07
  • 1970-01-01
  • 2013-01-09
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多