Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自SQL Server的json格式响应是如何工作的?_C#_Sql_Asp.net_Json - Fatal编程技术网

C# 来自SQL Server的json格式响应是如何工作的?

C# 来自SQL Server的json格式响应是如何工作的?,c#,sql,asp.net,json,C#,Sql,Asp.net,Json,我有一个以json形式返回查询结果的存储过程,我想了解这个查询如何在ASP.NET应用程序中访问我的代码 存储过程: Select SUBJECT AS [subject], STARTDATE AS [start] ENDDATE AS [end], ID AS [id] FROM SOME_TABLE FOR JSON PATH [ { "subject": _, "start": _, "end":_

我有一个以json形式返回查询结果的存储过程,我想了解这个查询如何在ASP.NET应用程序中访问我的代码

存储过程:

Select 
       SUBJECT AS [subject],
       STARTDATE AS [start]
       ENDDATE AS [end],
       ID AS [id]
FROM 
       SOME_TABLE
FOR JSON PATH
[
 {
  "subject": _,
  "start": _,
  "end":_,
  "id":_
 },
 ...]
存储过程中的Json格式:

Select 
       SUBJECT AS [subject],
       STARTDATE AS [start]
       ENDDATE AS [end],
       ID AS [id]
FROM 
       SOME_TABLE
FOR JSON PATH
[
 {
  "subject": _,
  "start": _,
  "end":_,
  "id":_
 },
 ...]
aspx.cs代码隐藏

(来自函数的片段)

我想在我的代码中存储这个json响应,但我不知道如何存储。在做出json响应之前,我使用
SqlDataReader
Read()
遍历每个记录,但是如果响应现在是json,这将如何工作;是否还有另一个类专门处理json响应


请澄清

读取SQL查询返回结果后,可以将结果存储到数组中。然后,使用json_encode函数以json格式输出结果

比如说,

int [] marks = new int[]  { 99,  98, 92, 97, 95};
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jsonSerializer.Serialize(marks);
  • 通过NuGet安装

  • 创建代码模型以镜像json

    public class JsonModel {  
        public int id {get;set;}  
        public DateTime start {get;set;}   
        public DateTime end {get;set;}  
        public string subject {get;set;}  
    }  
    
  • 从数据库中获取json编码的数据

    string json = String.Empty;
    using (SqlConnection connection = new SqlConnection("... your connection string ...") {
        connection.Open();
        using (SqlCommand command = new SqlCommand("SELECT FROM... FOR JSON PATH", connection) {
            json = command.ExecuteScalar();
        }
    }
    
  • 将其反序列化到您的模型

    var JsonModel model = JsonConvert.DeserializeObject<JsonModel>(json);
    
    var JsonModel model=JsonConvert.DeserializeObject(json);
  • 喝龙舌兰,吃法吉塔


  • 您的意思是JSON存储在SQL Server中,并且您正在通过SqlDataReader从数据库中检索它吗?您可以使用JSON.NET将JSON字符串转换为CLR对象类型@ChetanRanpariya我有一个以JSON格式返回查询的存储过程,我想知道如何将该数据获取到我的ASP.NET应用程序中。我以前使用过SqlDataReader,但现在对我不起作用。您可以共享存储过程返回的示例JSON吗?这很有用,但我目前的问题是我不知道如何获取sql查询返回结果。我尝试过使用SqlDataReader,但不起作用。我将分享一段代码片段,也许会有所帮助。@JonathanPortorreal:忘记DataReader吧
    var json=sccmd.ExecuteScalar()
    另外,您应该真正使用的是,而不是JavaScriptSerializer。