首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据C#中的型号数动态构造JSON key名称?

如何根据C#中的型号数动态构造JSON key名称?
EN

Stack Overflow用户
提问于 2020-11-13 22:45:42
回答 2查看 59关注 0票数 1

例如:

代码语言:javascript
复制
{
   "Books": [
       {
           "Name-1":"The Alchemist",
           "Type-1":"Fiction"
       },
       {
           "Name-2":"Silent Spring",
           "Type-2":"Non-Fiction"
       },
       {
           "Name-3":"1984",
           "Type-3":"Fiction"
       }
   ]
}

我有Books模型定义的属性“名称”和“类型”。如何从Books集合创建如上的JSON?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-13 22:57:47

将Books映射到Dictionary并序列化它们。类似于:

代码语言:javascript
复制
    serializer.Serialize(new { Books = books.Select((x, i) => 
        new Dictionary<string, string> { 
            { $"{nameof(x.Name}-{i+1}", x.Name }, 
            { $"{nameof(x.Type}-{i+1}", x.Type }
        }});

However, it looks very WIERD to have such a Json (I mean with indexes as property names of objects in same array)
票数 1
EN

Stack Overflow用户

发布于 2020-11-13 23:03:45

需要通过JsonTextWriter生成json

代码语言:javascript
复制
        StringBuilder sb = new StringBuilder();
        StringWriter sw = new StringWriter(sb);
        using (JsonWriter writer = new JsonTextWriter(sw))
        {
            writer.WriteStartObject();

            writer.WritePropertyName("Books");

            writer.WriteStartArray();

            //your for


            writer.WriteEndArray();

            writer.WriteEndObject();
        }

similar Issue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64822949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档