【问题标题】:Returning JSON with dynamic properties from C# (UTC miliseconds names)从 C#(UTC 毫秒名称)返回具有动态属性的 JSON
【发布时间】:2015-10-29 23:04:17
【问题描述】:

您好,我正在使用 AJAX 切换到 JSON 实现 - 并且需要一些帮助来理解这一点。

数据:数据有两部分,第一部分是UTC时间的日期,以毫秒为单位,第二部分是一个值。请建议,如果我应该将其嵌套为值数组或数据对象。

谁能告诉这如何转换为 JSON 世界(这是一个 JSON 对象,对吧?), 和

  1. 什么 C# 对象会生成此 JSON 对象(映射和格式化为 UTC 时间中的毫秒)。
  2. 来自JSONutils datamember、dataProperty 和 None 选项有什么区别
  3. 要返回 JSON 数据,在 Action 中,我应该返回 JSON 类型还是 ActionResult 类型?
  4. 在 HTML/JS 方面,我如何从 ActonResult 或 JSON 中解析出来

    {
        "943721039":4,
        "946706653":7,
        "946706350":6,
        "946728112":1
    }
    

【问题讨论】:

  • 如果键/值对中的那些键是动态的,那么我想您正在寻找的 C# 类型本身就是 dynamic
  • 感谢@david 我从 VAR 切换到 Dynamic

标签: c# asp.net json ajax json.net


【解决方案1】:

3-4。只需在 MSDN 上查看一个简单的示例: https://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult(v=vs.118).aspx

这样的方法在从 ex 调用时返回简单的 json。 jquery $.ajax.

  1. 您可以按照 David 的建议选择动态属性,并为其添加动态属性(带有毫秒名称),例如: Dynamically adding properties to a dynamic object?

但是,我会尽可能避免它。为什么不直接创建一个像 {time : '878499204', value: '2'} 这样的对象列表,这样更容易创建和使用。否则,对于您的 json,您基本上需要在客户端使用“for in”,这不是最酷的方式。我会这样做:

return Json(new []{ new {time = '878499204', value ='2'}, ... } );

这将生成:

[ { time: '878499204', value ='2'}, .... ]

您还可以对序列化进行自定义并将字典序列化为您需要的格式或自己创建 JSON,只需将其构建为字符串。

  1. 阅读手册..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2012-03-18
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多