我有一个Web服务器,它连接到带有外键的表的MS SQL。我的客户端代码通过一个大的JSON字符串向我发送记录。我的服务器收到它,我想解析它,以便我可以将记录插入适当的表。
这是我的数据库架构:
Table1
{
INT PID
INT CID
STRING firstname
STRING lastname
}
TABLE2
{
INT CID
INT ORDER
}
TABLE1将CID作为外键。
示例输入JSON类似于
{
TABLE1
{
"firstname":"Tony"
"lastname":"Stark"
}
TABLE2
{
"ORDER":"1234"
}
}
最好的方法是什么?
答案 0 :(得分:0)
您从客户端获取的JSON是系统的输入,您应该这样对待它。永远不要相信您的输入,因此请确保验证架构以确保JSON符合您的预期,当然您需要进行错误处理。
您应该使用newtonsoft JSON.NET来解析JSON。
http://james.newtonking.com/json
以下是一个例子:
string json = @"{
'Name': 'Bad Boys',
'ReleaseDate': '1995-4-7T00:00:00',
'Genres': [
'Action',
'Comedy'
]
}";
Movie movie = JsonConvert.DeserializeObject<Movie>(json);
将JSON转换为对象后,可以轻松地将对象持久保存到数据库中。
如果将RDBMS表映射到具有Entity Framework或任何其他ORM的对象,则将简化反序列化JSON对象的存储。
由于您不应该信任您的输入,我建议您手动将反序列化的输入对象映射到ORM或Table对象,或者您可以使用Automapper
等智能工具