从 C# 中的对象列表中获取 JSON 文件

Posted

技术标签:

【中文标题】从 C# 中的对象列表中获取 JSON 文件【英文标题】:getting a JSON file from a list of Objects in C# 【发布时间】:2019-03-13 22:52:03 【问题描述】:

我是 C# 新手,所以请多多包涵 :)

我有一个这样的人名单:

List<Person> PersonsList = new List<Person>();

每个人都有三个属性:

public string Name  get; set; 
public string Number get; set; 
public Adress Adress  get; set; 

我正在从文本文件中填充它,现在我需要将列表更改为 JSON 文件。

var list = Enumerable.Repeat(PersonsList , PersonsList.Count);
  var json =JsonConvert.SerializeObject(list); 

但我知道它不起作用,因为我没有在 Enumerable.Repeat 中迭代 PersonsList

你能给我一个解决办法吗?

【问题讨论】:

只要JsonConvert.SerializeObject(PersonList) 就足够了。 Enumerable.Repeat 会给你一个IEnumerable&lt;List&lt;Person&gt;&gt;,其中List&lt;Person&gt; 重复PersonsList.Count 次。也许您只是说JsonConvert.SerializeObject(PersonsList) 【参考方案1】:

好的,在我看来您使用 Enumerable.Repeat() 错误。它需要一个对象,并按照指定的次数复制它。所以你似乎已经让 PersonsList.Count 个新的 PersonsLists...

这是你看到的问题吗?

编辑: 至于解决办法。我会直接序列化 PersonsList 。除非我在这里误解了什么。

【讨论】:

这应该是评论。【参考方案2】:

试试这个:

var List=JsonConvert.SerializeObject(PersonsList);

【讨论】:

【参考方案3】:

这是错误的。

var list = Enumerable.Repeat(PersonsList , PersonsList.Count);
var json =JsonConvert.SerializeObject(list); 

你只需要这样做:

string jsonPersonsList = JsonConvert.SerializeObject(PersonsList); 

【讨论】:

【参考方案4】:

如果我理解你是正确的,你想再次将PersonsList 序列化为 json 吗?只需使用

var jsonString = JsonConvert.SerializeObject(PersonsList);

【讨论】:

以上是关于从 C# 中的对象列表中获取 JSON 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 c# 从 ajax 中的嵌套 JSON 对象中获取值

c#一个程序把xml文件转化成json对象,怎么从这个程序中获取json对象的值

C# JSON 反序列化:如何从 JSON 对象数组中获取值 [重复]

从 C# 中的字节 [] 获取内容类型 [关闭]

从 Dart 中的 json 文件中获取嵌套列表内容,但返回“'FormContent'的实例”

如何从列表“StandardListItem”中的 JSON 文件中的元素“名称”中获取所有值?