C# 无法从文件中读取 json 并循环遍历它

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

所以,我的文件中有 json 数据,这些数据目前是从服务器获取的。

这是我文件格式的一部分

[{"Table":"Starters","Label":"Starters","Columns":[{"Field":"Desc","Display":"Description",{"Field":"Name","Display":"Starter Name",},
{"Table":"Main","Label":"Main Course","Columns":[{"Field":"Desc","Display:"Description",{"Field":"Name","Display":"Main Course Name",}

对于代码

 public static void getTables(){
     
     var path = HttpContext.Current.Server.MapPath(String.Format("{0}", ConfigurationManager.AppSettings["path"]));

 using (StreamReader file = 
File.OpenText(path))
 using (JsonTextReader reader = 
new JsonTextTeader(file)){
  JValue obj = 
 (JValue)JToken.ReadFrom(reader);

}

}

这是代码的一部分。有很多表,我只需要将附加到列表或字典的表名和标签。你能帮忙吗?而且我没有为表和标签预定义类

c# json .net entity-framework
1个回答
0
投票

即使从您提供的部分 JSON 来看,也很明显它不是有效的 JSON。如果插入一些换行符和缩进以显示层次结构,则可以更容易地看到这一点:

[
    {
        "Table":"Starters",
        "Label":"Starters",
        "Columns":
        [
            {
                "Field":"Desc",
                "Display":"Description",
                {"Field":"Name","Display":"Starter Name",},

JSON中有两种结构类型:

  • 数组,在
    [square brackets]
    中,包含零个或多个以逗号分隔的值
  • objects,在
    {curly braces}
    中,它也包含以逗号分隔的值,但每个值必须以属性名称和冒号开头。

所以上面最后一行有问题,没有属性名。它应该是这样的:

"Field":"Desc",
"Display":"Description",
"SomeProperty": {"Field":"Name","Display":"Starter Name"}

注意:我还删除了

"Starter Name"
之后不必要的逗号,这在 JSON 中也是无效的。

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