C# 使用C在数据库中存储json数据
这是我在temp变量中得到的值,我想用一个附加列将此数据存储在数据库中,如下所示C# 使用C在数据库中存储json数据,c#,sql-server-2008,json.net,C#,Sql Server 2008,Json.net,这是我在temp变量中得到的值,我想用一个附加列将此数据存储在数据库中,如下所示 temp= { "Vikas": 1, "Pravin": 2, "Akshay": 5, "Vijay": 3, "Prasad": 4 } 我试着进入C name rank createdby vikas 1 nitin pravin 2 nitin akshay
temp= {
"Vikas": 1,
"Pravin": 2,
"Akshay": 5,
"Vijay": 3,
"Prasad": 4
}
我试着进入C
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
问题
1如何在C中获取此json数据并添加其他列
2是否可以在一个查询中使用多行插入来传递整个数据,而不是使用循环和插入单行 解释后编辑: 您可以通过以下方式将其反序列化到字典:
[System.Web.Services.WebMethod]
public static string setAnswer(string jsondata)
{
List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(jsondata);
}
在这一点上,我们有数据字典。
如何将其保存到数据库取决于您访问数据库的方式 解释后编辑: 您可以通过以下方式将其反序列化到字典:
[System.Web.Services.WebMethod]
public static string setAnswer(string jsondata)
{
List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(jsondata);
}
在这一点上,我们有数据字典。
如何将其保存到数据库取决于您访问数据库的方式 创建一个实体:MemberRank
然后在控制器中
public class MemberRank
{
public int Id { get; set; }
public string MemberName { get; set; }
public int Rank{ get; set; }
public string CreatedBy { get; set; }
}
创建一个实体:MemberRank
然后在控制器中
public class MemberRank
{
public int Id { get; set; }
public string MemberName { get; set; }
public int Rank{ get; set; }
public string CreatedBy { get; set; }
}
反序列化此内容的正确方法:
[
{
"memberName" : "Vikas",
"rank" : 1
},
{
"memberName" : "Pravin",
"rank" : 2
},
{
"memberName" : "Akshay",
"rank" : 5
},
{
"memberName" : "Vijay",
"rank" : 3
},
{
"memberName" : "Prasad",
"rank" : 4
}
]
就是将其反序列化到字典中
下面是一个例子:
哪些产出:
反序列化此内容的正确方法:
[
{
"memberName" : "Vikas",
"rank" : 1
},
{
"memberName" : "Pravin",
"rank" : 2
},
{
"memberName" : "Akshay",
"rank" : 5
},
{
"memberName" : "Vijay",
"rank" : 3
},
{
"memberName" : "Prasad",
"rank" : 4
}
]
就是将其反序列化到字典中
下面是一个例子:
哪些产出:
您使用什么类型的数据库访问?EF?阿多?取决于您使用的数据库。如果db允许,则插入其绝对可能。要向数组中添加行,您必须复制整个数组。升级到sql server 2016yes为避免for循环,您可以使用表值参数将列表转换为datatable检查此链接如果需要更多帮助,请告知我我假设temp=是指您有一个包含该内容的变量,这不是有效负载/字符串的一部分,因为这部分不是合法的json。您使用的是什么类型的db访问?EF?阿多?取决于您使用的数据库。如果db允许,则插入其绝对可能。要向数组中添加行,您必须复制整个数组。升级到sql server 2016yes为避免for循环,您可以使用表值参数将列表转换为datatable检查此链接如果需要更多帮助,请告知我我假设temp=是指您有一个包含该内容的变量,并不是说这是有效负载/字符串的一部分,因为这部分不是合法的json。谢谢回复,但不..不。。。这是员工的名字,所以我不能使它成为静态的,它可能是任何东西,所以这不可能使classA字符串到int的字典更合适,dictionary@Pravin你不这么说,这对解决问题非常重要。编辑问题并添加此信息。@LasseV.Karlsen使用此信息您是对的OK我将添加问题谢谢您的回复,但不..不。。。这是员工的名字,所以我不能使它成为静态的,它可能是任何东西,所以这不可能使classA字符串到int的字典更合适,dictionary@Pravin你不这么说,这对解决问题非常重要。编辑问题并添加此信息。@LasseV.Karlsen根据此信息您是对的OK我将添加问题您如何让Json.net将示例Json反序列化为您的MemberRank类型?您对EF有何疑问?我假设他正在使用EF,先生。您如何让Json.net将示例Json反序列化为您的MemberRank类型?您对EF有何疑问?我假设他正在使用EF,先生。
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();
}