如何拆分/解析 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 对象中。重复数据写入所有拆分的文件中?

如何从 url 获取 json 数据并将其保存到 const 变量 [TypeScript]

保存 json 响应并将其解析为 swift 对象