如何在 C# MVC 控制器操作中将动态对象序列化为 JSON?

2024-01-03

我想将动态对象序列化为 JSON。我尝试使用 ExpandoObject,但结果不是我需要的:

public JsonResult Edit()
{   
    dynamic o = new ExpandoObject();
    ((IDictionary<string,Object>)o)["abc"] = "ABC"; //or o.abc = "ABC";
    return Json(o);
}

我希望 JSON 看起来像: {"abc": "ABC"} 但它看起来像 [{"Key":"abc","Value":"ABC"}] 显然 ExpandoObject 不行,但是我可以继承 DynamicObject 并以某种方式重写它的方法来实现我想要的 JSON 格式吗?


我遇到了同样的问题,最终通过使用 JSON.net (Newtonsoft.Json) 序列化器而不是使用 JsonContent 结果来修复它。然后,它使用正常属性与“键”“值”奇怪列表序列化我的动态对象。

//In my usage I had a list of dynamic objects
var output = new List<dynamic>();

//Change this
return JsonContent(new {Error = errorMessage, Results = output});

//to this
return Content(JsonConvert.SerializeObject(new {Error = errorMessage, Results = output}));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# MVC 控制器操作中将动态对象序列化为 JSON? 的相关文章

随机推荐

  • 使用 Wikimedia API 获取位置

    如何使用 Mediawiki API 获取 Wikipedia 文章的城市 国家位置 假设我想确定圣家族大教堂位于哪个国家 哪个城市 我应该使用什么属性 尝试以下查询 And see 扩展 地理数据 https www mediawiki
  • React Router v4 中的嵌套路由

    我正在尝试设置一些嵌套路由来添加通用布局 检查一下代码
  • 在应用程序购买测试帐户无法在 IOS 中运行?

    我们正在使用沙盒测试帐户测试应用程序购买 在测试时它显示验证 在验证付款信息后 当我尝试在应用程序购买中测试时 它会将我重定向到应用程序商店 应用程序商店显示超时 我做错了什么吗 我还创建了另外三个沙箱测试帐户 用于在应用程序购买中进行测试
  • Parallel.ForEach 未生成所有线程

    我在使用 Parallel ForEach 时遇到一些问题 我需要模拟几个硬件组件 等待传入连接并回复它 我当前的代码如下 Task Factory StartNew gt components component gt var liste
  • 第 N 次和第 (N+1) 次出现之间的正则表达式字符串

    我试图找到两个特殊字符之间第 n 次出现的子字符串 例如 一 二 三 四 五 比如说 我正在寻找 第 n 次和第 n 1 次 第二次和第三次出现 之间的字符串字符 结果是 三 我想使用正则表达式来做到这一点 有人可以指导我吗 我当前的尝试如
  • 从 SQL Server 2008 调用非托管 C/C++ DLL 函数

    我有一个庞大的 C C 函数库 需要从 SQL Server 2008 调用 我编写了一个 C 适配器类 它从 Win32 DLL 加载这些函数DllImport并将它们暴露给 Net 代码 这在大多数 Net 应用程序中都可以正常工作 现
  • 如何将参数名称作为参数传递?

    我有这个代码 hobbies2 form cleaned data pop hobbies2 PersonneHobby objects filter personne obj delete for pk str in hobbies2 t
  • UpdateSourceTrigger=显式

    我正在创建一个包含多个文本框的 WPF 窗口 当用户按下 确定 按钮时 我希望所有文本框都被评估为非空白 我知道我必须将 TextBox 与 Explicit 的 UpdateSourceTrigger 一起使用 但我是否需要为每个文本框调
  • 在资源有限的环境中禁用背景视频

    对于基于网络的媒体播放器项目 我正在尝试使用简单的一些微妙的背景视频
  • 使用 asp.net WebService 和 Android 将图像上传到 Azure Blob 存储?

    我正在尝试通过以下方式将选定的图像从我的 Android 设备上传到 Azure Blob 我制作的 asp net WebService 但我在 android 中收到橙色错误 W System err 454 SoapFault 故障代
  • Windows 客户端应用程序的登录对话框

    我可以调用 Win32 函数来显示 Windows 登录对话框吗 例如 Internet Explorer 和 Visual Studio 的团队资源管理器在访问网站时都会显示凭据对话框 我如何显示该对话框 我有一个 NET Windows
  • CLion 和 Crypto++ 库

    不久前 我开始在 Visual Studio 2015 中编写应用程序 在设置所有库依赖项时没有出现任何问题 现在 我决定搬到 CLion 但是我的应用程序依赖于cryptopp库 我需要将其链接到我的 CLion 项目中 目前 我面临着大
  • 如何仅获取表达式系列输出的最后一个值?

    我不需要这个表达式的整个数组 只需要它的最近 当前 值 如何修改其代码 UpperBollinger ta sma close 20 2 ta stdev close 20 当然 我可以用它来获得相同的较低频段 你不能这样做 Once a
  • std::bind 如何按值获取可变参数,即使具有通用引用?

    函数签名为std bind 如下 https en cppreference com w cpp utility functional bind template lt class F class Args gt unspecified b
  • 是否可以在 Google Maps API 中检索特定区域内的所有地址列表?

    假设我想检索罗马所有地址的列表 如何在 Google Maps API 或任何其他网络服务中以编程方式实现此目的 我不需要地址的实际位置 只需要地址名称的列表 您无法使用 Google Maps API 来做到这一点 你可以做反向地理编码
  • 用最少的计算量找到素数的算法

    假设您要编写一个函数 方法来查找素数 最有效的方法是什么 我认为这将是一个类似这样的测试 下面的代码是半c bool primeTest int x X is the number we re testing int testUpTo in
  • 获取 CGPath 上的随机 CGPoint

    我有一个代表椭圆的 CGPath 我想在该路径上的随机点放置一个精灵节点 如何获得该 CGPath 上的随机 CGPoint 谈到封闭式CGPath并思考一种快速方法来获得无限点之间的随机点CGPath 首先我已经翻译成Swift this
  • 如何向我的 gameScene.swift 添加滚动视图,该视图将滚动浏览一系列精灵?

    所以我创建了一个 3x10 的精灵网格 它超出了屏幕的底部边缘 我添加了一个 UIScrollView 并且出现了滚动指示器 但实际上没有发生任何移动 这是代码 import SpriteKit var buyButton SKSprite
  • javascript、gulp、观看、更改

    我无法理解这个问题 这应该是每次修改监视文件时执行的 gulp 任务 任何人都可以解释为什么需要通过管道传输监视的文件changed plugin gulp task build css function return gulp src p
  • 如何在 C# MVC 控制器操作中将动态对象序列化为 JSON?

    我想将动态对象序列化为 JSON 我尝试使用 ExpandoObject 但结果不是我需要的 public JsonResult Edit dynamic o new ExpandoObject IDictionary