如何从文件夹项目ASP.NET中读取JSON文件

时间:2018-07-01 18:13:19

标签: javascript asp.net json ajax asp.net-mvc

我在Script文件夹中创建一个文件夹“ js”,并使用数组城市创建了一个文件json 我尝试读取此文件夹中的文件,然后将列表返回到我的选择视图。

{
  "cidade": [
    { "Nome": "Curitiba" },
    { "Nome": "São Paulo" },
    { "Nome": "Rio de Janeiro" },
    { "Nome": "Santa Catarina" },
    { "Nome": "Rio Grande do Sul" },
    { "Nome": "Acre" },
    { "Nome": "Goias" }
  ]
}

我的课:

public class Cidade {
  public string Nome {
    get;
    set;
  }
}

public class Cidades {
  public IList < Cidade > cidades {
    get;
    set;
  }
}

我的动作:

public class Cidade {
  public string Nome {
    get;
    set;
  }
}

public class Cidades {
  public IList < Cidade > cidades {
    get;
    set;
  }
}

这是错误asp.net error

2 个答案:

答案 0 :(得分:1)

此代码将具有json文件路径,而不是json文件的内容:

  var json = Server.MapPath("~/Scripts/js/cidade.json");

您应该将其更改为以下内容以读取json内容:

  var json = System.IO.ReadAllText(Server.MapPath("~/Scripts/js/cidade.json"));

您还在json数据中缺少s。您的课程具有属性IList<Cidade> cidades,而json的键为cidad

答案 1 :(得分:0)

我的最终代码:

    [HttpGet]
    public ActionResult Get()
    {
        var json = System.IO.File.ReadAllText(Server.MapPath(@"~/App_Data/cidade.json"));
        Cidade cidade = JsonConvert.DeserializeObject<Cidade>(json);
        return View(cidade);

    }

我的课:

    public class Cidades
{
    public string Nome { get; set; }
}

public class Cidade
{
    public List<Cidades> cidade { get; set; }
}