Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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# Web api将json保存到数据库并作为json获取_C#_Json_Asp.net Web Api - Fatal编程技术网

C# Web api将json保存到数据库并作为json获取

C# Web api将json保存到数据库并作为json获取,c#,json,asp.net-web-api,C#,Json,Asp.net Web Api,我正在使用web api,需要将json对象保存到数据库中。我会得到屏幕大小,颜色。。。并保存到数据库中 { "height": 1536, "width": 2048, "color": "#114521" } 但我不想为这些数据创建C#类。我想创建一个名为“设置”的类: public class Settings{ public string Username {get;set;} public string Data {get;set;} // This will be

我正在使用web api,需要将json对象保存到数据库中。我会得到屏幕大小,颜色。。。并保存到数据库中

{ "height": 1536, "width": 2048, "color": "#114521" }
但我不想为这些数据创建C#类。我想创建一个名为“设置”的类:

public class Settings{ 
   public string Username {get;set;}
   public string Data {get;set;}  // This will be json settings data
}
但我将把它作为json对象返回

我正在创建一个新的设置C#实例:

public Settings Get(){
   var settings = new Settings{
    Username="myname",
    Data="{ \"height\": 1536, \"width\": 2048, \"color\": \"#114521\" }"
   };
   return settings;
 }
数据
将作为文本而不是json对象发送到客户端。
(我将把
数据作为原始json保存到数据库中。)

在提供的示例中,json是一个字符串,在反序列化之前它不是一个对象。设置中包含的字符串。可以将数据传递给插入查询。您可以有一个列来存储整个Json字符串。如果您的数据库是SQL Server,则varchar数据类型的最大长度为8000,或者您可以使用几乎不受限制的varchar(max)

因此,要在数据库中存储json字符串:

  • 创建列(如果尚未存在)以存储数据
  • 创建SQL insert语句以将值插入数据库。例如:

    INSERT INTO MyTable (UserName, JsonColumnName) VALUES (@userName, @JsonString)
    
  • 根据应用程序与数据库交互的格式,将Settings.Data中的值传递给insert语句或SQLParameter对象

  • 要从数据库中获取Json值,请执行以下操作:

  • 创建一个select状态,根据用户名或用于标识json字符串的任何唯一id查找正确的json字符串
  • 从查询结果中检索json字符串
    在提供的示例中,Json是一个字符串,在反序列化之前它不是一个对象。设置中包含的字符串。可以将数据传递给插入查询。您可以有一个列来存储整个Json字符串。如果您的数据库是SQL Server,则varchar数据类型的最大长度为8000,或者您可以使用几乎不受限制的varchar(max)

    因此,要在数据库中存储json字符串:

  • 创建列(如果尚未存在)以存储数据
  • 创建SQL insert语句以将值插入数据库。例如:

    INSERT INTO MyTable (UserName, JsonColumnName) VALUES (@userName, @JsonString)
    
  • 根据应用程序与数据库交互的格式,将Settings.Data中的值传递给insert语句或SQLParameter对象

  • 要从数据库中获取Json值,请执行以下操作:

  • 创建一个select状态,根据用户名或用于标识json字符串的任何唯一id查找正确的json字符串
  • 从查询结果中检索json字符串
    没关系,它不会显示为Json字符串。当在客户端序列化为json时,它将转换为对象

    var obj = JSON.parse('{ \"height\": 1536, \"width\": 2048, \"color\": \"#114521\" }');
    

    没关系,它不会显示为Json字符串。当在客户端序列化为json时,它将转换为对象

    var obj = JSON.parse('{ \"height\": 1536, \"width\": 2048, \"color\": \"#114521\" }');
    

    只是确认一下--您是将设置序列化到数据库还是从数据库序列化,还是将其用作从web API返回值的DTO?这是否回答了您的问题。听起来您可能启用了使用
    DataContractJsonSerializer
    。请参阅和。确认一下--您是将设置序列化到数据库还是从数据库序列化,还是将其用作从web API返回值的DTO?这是否回答了您的问题。听起来您可能启用了使用
    DataContractJsonSerializer
    。见和。