使用C#将json数据存储在数据库中

时间:2017-02-06 10:56:40

标签: c# sql-server-2008 json.net

temp= {
       "Vikas": 1,
       "Pravin": 2,
       "Akshay": 5,
       "Vijay": 3,
       "Prasad": 4 
      }

这是我在临时变量中得到的值我希望将这些数据存储在数据库中,其中包含一个附加列,如下所示

name      rank   createdby
vikas      1       nitin
pravin     2       nitin
akshay     5       nitin
vijay      3       nitin
Prasad     4       nitin


Note:  name column is employee name so it is anything 

我试着进入C#

[System.Web.Services.WebMethod]
public static string setAnswer(string jsondata)
{
    List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(jsondata);
}

问题。

1)如何在C#和json data

中获取此add additional column

2)是否可以在一个查询中使用多行插入传递整个数据,而不是使用循环并插入单行。

3 个答案:

答案 0 :(得分:2)

解释后编辑:

您可以通过以下方式将其反序列化为字典:

var data = JsonConvert.DeserializeObject<Dictionary<string, int>>(temp);

此时我们有数据字典。 如何将其保存到数据库取决于您访问数据库的方式。

答案 1 :(得分:2)

反序列化此内容的正确方法:

{
    "Vikas": 1,
    "Pravin": 2,
    "Akshay": 5,
    "Vijay": 3,
    "Prasad": 4 
}

是将其反序列化为Dictionary<string, int>

这是LINQPad示例:

void Main()
{
    const string json = @"{
        ""Vikas"": 1,
        ""Pravin"": 2,
        ""Akshay"": 5,
        ""Vijay"": 3,
        ""Prasad"": 4
    }";
    Dictionary<string, int> empsAndNumbers =
        JsonConvert.DeserializeObject<Dictionary<string, int>>(json);
    empsAndNumbers.Dump();
}

输出:

example output

答案 2 :(得分:1)

创建实体:MemberRank

public class MemberRank
{
    public int Id { get; set; }
    public string MemberName { get; set; }
    public int Rank{ get; set; }
    public string CreatedBy { get; set; }
}

然后在Controller中,

var membersText = File.ReadAllText(Path.Combine(envContentRootPath, @"PathOfTheFile"));
var members = JsonConvert.DeserializeObject<List<MemberRank>>(membersText);
members.ForEach(cb => cb.CreatedBy = "nitin");
_dbContext.Set<MemberRank>().AddRange(members);
_dbContext.SaveChanges();

为此,您需要更改json文件,如下所示:

[
  {
     "memberName" : "Vikas",
     "rank" : 1
  },
  {
     "memberName" : "Pravin",
     "rank" : 2
  },
  {
     "memberName" : "Akshay",
     "rank" : 5
  },
  {
     "memberName" : "Vijay",
     "rank" : 3
  },
  {
     "memberName" : "Prasad",
     "rank" : 4
  }
]