CodeGo.net>如何将JSON数据存储到MySQL

时间:2018-08-04 05:58:45

标签: c# mysql json

我的REST API上有此JSON数据,我想将其存储在MySQL服务器中

JSON数据

[
    {
        "res_order_num": "1",
        "menu_code": "1",
        "menu_quantity": "2",
        "menu_total_price": "60",
        "res_no": "1",
        "menu_name": "Adobo Manok"
    },
    {
        "res_order_num": "2",
        "menu_code": "5",
        "menu_quantity": "2",
        "menu_total_price": "90",
        "res_no": "1",
        "menu_name": "Pritong Bangus"
    }
]

那么如何将其存储在MySQL中。

3 个答案:

答案 0 :(得分:2)

解决方法:

var persons = JsonConvert.DeserializeObject<List<Member>>(response);

现在您可以遍历以下项目。

foreach(Member person in persons )
{
    // add to db your each person
}

,这里介绍如何插入db: 对于ADO.Net:https://msdn.microsoft.com/en-us/library/ms233812.aspx

对于EntityFramework:https://msdn.microsoft.com/en-us/library/ee712907(v=vs.113).aspx

答案 1 :(得分:0)

没有其他信息;看来您没有太多现有代码。如果您要开始使用c#将数据保存到MySQL数据库,请尝试; Microsoft提供了本教程。但是,没有其他信息,没有多少人可以回答这个问题。

教程:https://msdn.microsoft.com/en-us/library/0f92s97z.aspx

如果您包括以下内容,人们可能会给出更好的答案:

  • 您是否已存在可读写MySQL的现有代码?
  • 您是否设置了MySQL数据库?
  • 您的数据库中是否有与JSON中表示的数据匹配的表?

答案 2 :(得分:0)

如果您的json包含0 ..... N个人,那么BatchUpdate是您的理想解决方案,如果您有性能要求,这可能会减少数据库往返行程

以下方法包含BatchUpdate的示例

public void BatchUpdateToMySqlServer()
{
    var persons = JsonConvert.DeserializeObject<List<Member>>(response);

    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("res_order_num", typeof(System.String)));
    dt.Columns.Add(new DataColumn("menu_code", typeof(System.String)));
    dt.Columns.Add(new DataColumn("menu_quantity", typeof(System.String)));
    dt.Columns.Add(new DataColumn("menu_total_price", typeof(System.String)));
    dt.Columns.Add(new DataColumn("res_no", typeof(System.String)));
    dt.Columns.Add(new DataColumn("menu_name", typeof(System.String)));

    foreach (var item in persons)
    {
        DataRow dr = dt.NewRow();
        dr["res_order_num"] = item.res_order_num;
        dr["menu_code"] = item.menu_code;
        dr["menu_quantity"] = item.menu_quantity;
        dr["menu_total_price"] = item.menu_total_price;
        dr["res_no"] = item.res_no;
        dr["menu_name"] = item.menu_name;
        dt.Rows.Add(dr);
    }


    MySqlConnection con = new MySqlConnection("Your Connection String");
    if (con.State == ConnectionState.Open)
    {
        con.Close();
    }
    con.Open();
    MySqlCommand cmd = new MySqlCommand("Your Insert Command", con);
    cmd.CommandType = CommandType.Text;

    cmd.UpdatedRowSource = UpdateRowSource.None;

    MySqlDataAdapter da = new MySqlDataAdapter();
    da.InsertCommand = cmd;
    da.UpdateBatchSize = 100000; //If you json contains 100000 persons object;
    int records = da.Update(dt);
    con.Close();
}
如果必须使用StoedProcedure作为插入命令,

Here是不错的文章。