如何拆分/解析 JSON 数据并将其保存到 SQL 服务器中?
Posted
技术标签:
【中文标题】如何拆分/解析 JSON 数据并将其保存到 SQL 服务器中?【英文标题】:How to split/parse JSON data and save it into SQL server? 【发布时间】:2019-06-01 21:53:03 【问题描述】:我有一个 MVC 控制器来接收从 WinForms 应用程序发送的 JSON 数据。如何拆分 JSON 字符串并将其存储到 SQL Server 中?
这是我的控制器来接收和反序列化 json 对象:
Stream req = Request.InputStream;
req.Seek(0,System.IO.SeekOrigin.Begin);
string json = new StreamReader(req).ReadToEnd();
hl7View hl = null;
hl = JsonConvert.DeserializeObject<hl7View>(json);
//hl do have a string data like this
//"\"data\":[\"LOC\":\"TEST\",\"COMPANY\":\"BST\",\"MSG_ID\":\"20160701123200-112\",\"NS\":\"\",\"ROOM\":\"\",\"BED\":\"\",\"SID\":\"25444444\",\"OBS_SEQ\":\"1\",\"OBS_TIME\":\"20160701164801\",\"SEQ\":\"1\",\"ITEM\":\"8867-4\",\"ITEMLAB\":\"Heart Rate\",\"RESULT\":\"80\",\"UNIT\":\"Beats/min\",\"FLAG\":null,\"CLI_INFO\":null,\"OPID\":\"150710\"],\"sMSG\":null"
//what should i do here?
如何拆分字符串并将其存储到 SQL Server 中?
这是 hl7View 类的代码:
public class hl7View
public string sMSG get;set;
public List<dataDB> Datalist get;set;
database I've created.
我尝试手动插入数据,它工作正常。是否有可能将其拆分,然后在反序列化后将其存储到数据库中?
【问题讨论】:
你打算拆分什么?除非它特别大,否则为什么不直接反序列化整个对象? 你尝试过使用 Json.NEt 吗? newtonsoft.com/json @John 我想拆分从 JSON 对象反序列化的数据,如您所见,我确实反序列化了 json 对象并且得到了一个长字符串数据。我想要的是拆分该数据并将其存储到我创建的数据库中。 @DanielW。是的,我用它来反序列化我的对象,我想要的是拆分字符串并将其存储到我的数据库中。 我会将整个字符串提供给 sqlserver 并让它进行“拆分”(解析);工作量少了 【参考方案1】:我认为您应该需要根据您创建的实体框架将dataDB列表对象直接添加到sql db。
使用您已经拥有的 dataDB 列表对象设置 foreach 循环。
dbcontext.tablename.add(item) // item 是 dataDB 的 foreach 循环对象。
类似于下面的代码。
foreach (var mapping in mappings)
mapping.UserId = UserCommitteeMappingIDWiseUserID[mapping.UserCommitteeMappingID];
mapping.ModifiedBy = ModifiedBy;
mapping.ModifiedDate = DateTime.Now;
context.UserCommitteeMappings.AddObject(mapping);
【讨论】:
是的!我发现直接把对象存到sql server里面,在sql server里面拆分字符串更容易!以上是关于如何拆分/解析 JSON 数据并将其保存到 SQL 服务器中?的主要内容,如果未能解决你的问题,请参考以下文章
解析嵌套的 JSON 并将其保存到 SQLite 中,然后检索它
从sql列中拆分数据并将其保存在sql存储过程中的另一个表中的最有效方法是啥[重复]
保存解析 json 文件的输出并将其传递给 Bigqueryinsertjoboperator
如何将 json 输出保存在 String 对象中。重复数据写入所有拆分的文件中?