【问题标题】:How Can I Access Data From External Json File in asp.net core?如何从 asp.net core 中的外部 Json 文件访问数据?
【发布时间】:2019-09-19 03:37:03
【问题描述】:

我想从我的文件目录中的 json 文件中访问数据。

我尝试过使用StreamReader,但它不会反序列化数据。

string json = r.ReadToEnd();

WorkFlowConfiguration items = 
    JsonConvert.DeserializeObject<WorkFlowConfiguration>(json);

Debug.WriteLine(items.WorkFlowAction);
Console.WriteLine(items.WorkFlowAction);

items.WorkFlowAction.ForEach(el => Console.WriteLine(el.ToString()));

【问题讨论】:

  • 你的代码sn-p line1后面的string json变量中的文件内容能看到吗?
  • 这段代码有错误吗?什么错误?
  • 你现在得到了什么结果,你期待什么?
  • @rena 非常感谢您的合作。我解决了我的问题。现在它正在工作。问题是访问语法。

标签: c# json asp.net-core


【解决方案1】:

有两种获取外部json文件的方法,如下:

1.型号:

public class Test
{
    public string status { get; set; }
    public int code { get; set; }
    public string message { get; set; }
}

2.Json 文件:

  {
    "status": "succeess",
    "code": 1,
    "message": "login succeeded!"
  }

3.第一种方式(使用StreamReader):

using (StreamReader r = new StreamReader("C:\\test.json"))
    {
         string json = r.ReadToEnd();
         Test item =JsonConvert.DeserializeObject<Test>(json);
    }

4.第二种方式(使用File.ReadAllText):

var jsonString = System.IO.File.ReadAllText("C:\\test.json");
Test items =JsonConvert.DeserializeObject<Test>(jsonString);

【讨论】:

    【解决方案2】:

    如果你想从启动类访问

    "MySettings": {  
        "DbConnection": "abc",  
        "Email": "abc@domain.com",  
        "SMTPPort": "5605"  
      }  
    
    
    public Startup(IConfiguration configuration)
    {   
         var dbConnection= configuration["MySettings:DbConnection"];
    }
    

    或者如果你想在你的控制器中,你必须在你的构造函数中注入 IConfiguration

    public UserController(IConfiguration configuration)  
    {  
       configuration = configuration["MySettings:DbConnection"]; 
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 2015-04-06
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 2020-07-02
      相关资源
      最近更新 更多