【发布时间】:2020-01-10 07:52:37
【问题描述】:
我正在尝试从 c# 读取一个大的 json 文件并对其进行反序列化:
// deserialize JSON directly from a file
using (StreamReader file = File.OpenText(@"C:\Users\hansi\Desktop\csvjson.json"))
{
JsonSerializer serializer = new JsonSerializer();
Product product2 = (Product)serializer.Deserialize(file, typeof(Product));
Console.WriteLine(product2.Name);
}
但它只读取第一个对象然后关闭,有人对此有答案吗? 程序继续运行没有错误,它只读取我的 Json 文件中的第一个对象
示例 Json,它继续使用 150000 个产品:
{
"Item No.": 1000,
"Product Name": "Pendant, Brass",
"Product Category": "Lig",
"Type": "Pendant",
"Collection": "Tynl",
"Designer": "Paav",
"Design": 1965,
"Form": "",
"Dimension": "",
"Finish of Main Part": "",
"New Arrival": "",
"Tags": "",
"Estimated Release Date": "Ready to Order",
"EAN": 571090274,
"Country": "",
"Country Of Origin": "CN",
"Custom Tariff Code": 940520,
"Product Weight /Kg": "3,3",
"Gross Weight /Kg": "5,1",
"Gross Height /Meter": "0,35",
"Gross Length /Meter": "0,53",
"Gross Depth /Meter": "0,53",
"Gross Volume /m3": "",
"Cord length": "",
"Max Watt": "",
"Upholstery": "",
"Price Group": "",
"Glides": "",
"EUR RRP.":
},
{
【问题讨论】:
-
你能发布一个示例 json blob 吗?
-
能否编辑您的问题以分享完整的minimal reproducible example,包括 JSON 样本?
JsonSerializer来自哪个图书馆?是json.net吗? -
您是否尝试过将文本包装在
[]中并反序列化列表? -
这不是 JSON,而是以逗号分隔的 JSON 值连接在一起的序列。要使用json.net 读取这样的序列,请参阅Line delimited json serializing and de-serializing。 (同样的答案适用于逗号分隔的 JSON 对象作为行分隔的 JSON 对象,请参阅How to deserialize dodgy JSON (with improperly quoted strings, and missing brackets)? 了解详细信息。)
-
@Alexei 我正在回复泰勒。此外,他的数据是多条记录,不应该是非数组。