C# 中的动态对象到 JSON

本文关键字:JSON 对象 动态 | 更新日期: 2023-09-27 18:36:18

我正在使用C#,我需要为我的应用程序创建一些JSON。结构各不相同,我对创建一个新类不感兴趣。我习惯于使用javascript对象和ruby字典。我在网上找到了一些建议,但没有一个奏效。

目前,我正在使用一个 JSON 对象,例如:

unit: "country",
suggestions: [
    { "value": "United Arab Emirates", "data": "AE" },
    { "value": "United Kingdom",       "data": "UK" },
    { "value": "United States",        "data": "US" }
]

想知道是否可以创建一个对象,我可以轻松地从建议中添加和删除对象,还可以像 javascript 或 ruby 一样操作该对象。

谢谢!

C# 中的动态对象到 JSON

看看 Json.NET 库。您可以将 JSON 反序列化为动态对象:

string json = @"[
  {
    'Title': 'Json.NET is awesome!',
    'Author': {
      'Name': 'James Newton-King',
      'Twitter': '@JamesNK',
      'Picture': '/jamesnk.png'
    },
    'Date': '2013-01-23T19:30:00',
    'BodyHtml': '<h3>Title!</h3>'r'n<p>Content!</p>'
  }
]";
dynamic blogPosts = JArray.Parse(json);
dynamic blogPost = blogPosts[0];
string title = blogPost.Title;
Console.WriteLine(title);
// Json.NET is awesome!
string author = blogPost.Author.Name;
Console.WriteLine(author);
// James Newton-King
DateTime postDate = blogPost.Date;
Console.WriteLine(postDate);
// 23/01/2013 7:30:00 p.m.

来源: http://www.newtonsoft.com/json/help/html/QueryJsonDynamic.htm

我想知道是否可以创建一个可以轻松添加和删除对象的对象

好吧,我并不完全理解您的要求。你在找字典吗?

var dict = new Dictionary<string, object>();
dict.Add("1",new {PropertyA="A",PropertyB="B"});
dict.Add("2", new {SomeotherProp="S"});`