解析JSON以将记录插入表中

时间:2014-10-09 10:11:21

标签: .net json parsing

我有一个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"  
}  
}  

最好的方法是什么?

1 个答案:

答案 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等智能工具

http://automapper.org/