首页 > 解决方案 > 如何在c#中将json字符串转换为匿名类型?

问题描述

我正在使用图书馆handlebars.net。https://github.com/rexm/Handlebars.Net

它采用模板字符串和匿名类型,并使模板填充匿名类型值。这是一个例子:

string source =
@"<div class=""entry"">
  <h1>{{title}}</h1>
  <div class=""body"">
    {{body}}
  </div>
</div>";

var template = Handlebars.Compile(source);

var data = new {
    title = "My new post",
    body = "This is my first post!"
};

var result = template(data);

/* Would render:
<div class="entry">
  <h1>My New Post</h1>
  <div class="body">
    This is my first post!
  </div>
</div>
*/

就我而言,我有一个 json 文件,我想从中读取并将其用作匿名类型。如果我使用像 newtonsoft 这样的 json 解析器,我会得到一个 JSONObject 类型的变量,它适用于基本值,但如果我使用数组,它会引发关于无法将 JArray 转换为 String 的严格要求。

所以我的问题是,有没有办法将 json 文件转换为匿名类型?

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types

谢谢

标签: c#json

解决方案


考虑使用 ServiceStack 的动态 API 来反序列化任意 JSON。

https://github.com/ServiceStack/ServiceStack.Text#supports-dynamic-json


推荐阅读