如何在C#中将txt文件转换为json

问题描述 投票:-1回答:1

我需要有关解析文本文件数据并将其存储为JSON对象的最佳方法的建议。我的文本文件如下所示:

address,street,202
address,locality,Texas
address,landmark,mount_circle
student,info,name,Tom
student,info,id,1
student,info,name,Harry
student,info,id,2
student,info,name,John
student,info,id,3
student,info,name,Don
student,info,id,4
student,info,name,Brad
student,info,id,5
student,area,Texas
exam,marks,subject,socialScience,History,50
exam,marks,subject,socialScience,Geo,25
exam,marks,subject,socialScience,PoliticalScience,40
exam,marks,subject,English,45
exam,marks,percentage,80
exam,venue,country,name,USA
exam,venue,country,name,Cannada
exam,venue,country,name,Mexico

预期的JSON输出:

{
    "address": {
        "street": "202",
        "locality": "Texas",
        "landmark": "mount_circle"
    },
    "student": {
        "info": [{
                "name": "Tom",
                "id": "1"
            },
            {
                "name": "Harry",
                "id": "2"
            },
            {
                "name": "John",
                "id": "3"
            },
            {
                "name": "Don",
                "id": "4"
            },
            {
                "name": "Brad",
                "id": "5"
            }
        ],
        "area": "Texas"
    },
    "exam": {
        "marks": {
            "subject": {
                "socialScience": {
                    "History": "50",
                    "Geo": "25",
                    "PoliticalScience": "40"
                },
                "English": "45"
            },
            "percentage": "80"
        },
        "venue": {
            "country": [{
                    "name": "USA"
                },
                {
                    "name": "Cannada"
                },
                {
                    "name": "Mexico"
                }
            ]
        }
    }
}

注意:以上文字可能更复杂。

我试图使用“ Newtonsoft.Json.Linq” NuGet包在C#中解析此文本文件。因此,如果有人可以在这里为我提供帮助,如何继续使用通用方法,这样我就不必编写任何蛮力方法来解析此文本文件,因为文本可以扩展得很大,而上面显示的文本将显示为样本仅供参考。

json.net
1个回答
0
投票

您的输入文件不是json。因此,您可能只使用string.split来获取每一行的值数组然后,您可以创建一些C#类来表示每个不同的对象。看起来您可以使用每行中的第一个值来确定对象类型。然后,您可以使用json.net的序列化对象方法来获取所需的json。

https://www.newtonsoft.com/json/help/html/Introduction.htm

© www.soinside.com 2019 - 2024. All rights reserved.