从 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<List<Person>>
,其中List<Person>
重复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 对象数组中获取值 [重复]