C# Web api将json保存到数据库并作为json获取
我正在使用web api,需要将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
{ "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
。见和。