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)是否可以在一个查询中使用多行插入传递整个数据,而不是使用循环并插入单行。
答案 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();
}
输出:
答案 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
}
]