C# 使用json.net将json对象反序列化为SQL DB
我想使用json.net将json对象反序列化为SQL DB Json文件:C# 使用json.net将json对象反序列化为SQL DB,c#,asp.net,json,json.net,C#,Asp.net,Json,Json.net,我想使用json.net将json对象反序列化为SQL DB Json文件: { "requirements": { "requirement": [ { "Id": "req1", "desc": "description of requirement1" }, { "Id": "req2", "desc": "description of requirement2",
{
"requirements": {
"requirement": [
{
"Id": "req1",
"desc": "description of requirement1"
},
{
"Id": "req2",
"desc": "description of requirement2",
},
{
"desc": "description of requirement3",
"Id": "req3"
}
]
}
}
这样,“Id”属性的值应该放在需求表的Id列中,而“desc”属性的值应该放在需求表的desc列中
ID DESC
req1 description of requirement1
req2 description of requirement2
req3 description of requirement3
您可以使用工具生成类,并像这样使用反序列化对象
public class Requirement
{
public string Id { get; set; }
public string desc { get; set; }
}
public class Requirements
{
public List<Requirement> requirement { get; set; }
}
public class RootObject
{
public Requirements requirements { get; set; }
}
var x =JsonConvert.DeserializeObject<RootObject>(json);
string json=“{\'requirements\”:{\'requirement\”:[{\'Id\”:“requirement1\”,{\'Id\”:“requirement2\”,“desc\”:“requirement2\”,},{\'desc\”:“requirement3\”的描述,{\'desc\”:“requirement3\”,“Id\:“requirement3\”});
//使用Json.Net反序列化
var objectRequirement=JsonConvert.DeserializeObject(json);
//将其添加到数据库中
foreach(objectRequirement.requirements.requirements中的var项)
{
db.Requirement.Add(新需求{ID=item.ID,DESC=item.DESC});
}
db.SaveChanges();
您可以使用创建您的类:
public class Requirement
{
public string Id { get; set; }
public string desc { get; set; }
}
public class Requirements
{
public List<Requirement> requirement { get; set; }
}
public class RootObject
{
public Requirements requirements { get; set; }
}
公共类要求
{
公共字符串Id{get;set;}
公共字符串desc{get;set;}
}
公开课要求
{
公共列表要求{get;set;}
}
公共类根对象
{
公共需求{get;set;}
}
下面是Foreach循环错误的错误28 Foreach语句无法对“TestWebService.Models.RootObject”类型的变量进行操作,因为“TestWebService.Models.RootObject”不包含“GetEnumerator”的公共定义C:\Users\ab\Documents\Visual Studio2013\Projects\TestWebService\TestWebService\Controllers\JsonReaderController.cs 82 17 TestWebServiceOk我只是将(objectRequirement中的var项)替换为(objectRequirement.requirements.requirements中的var项),我还更改了解决方案中的json字符串。您也可以在sql server中使用OPENJSON,以防您使用存储过程。你可以参考这个链接
string json = "{\"requirements\": {\"requirement\": [{\"Id\": \"req1\",\"desc\": \"description of requirement1\"},{\"Id\": \"req2\",\"desc\":\"description of requirement2\",},{\"desc\": \"description of requirement3\",\"Id\": \"req3\"}]}}";
//Deserialize using Json.Net
var objectRequirement = JsonConvert.DeserializeObject<RootObject>(json);
//Add it to your database
foreach (var item in objectRequirement.requirements.requirement)
{
db.Requirement.Add(new Requirement { ID = item.Id, DESC = item.desc });
}
db.SaveChanges();
public class Requirement
{
public string Id { get; set; }
public string desc { get; set; }
}
public class Requirements
{
public List<Requirement> requirement { get; set; }
}
public class RootObject
{
public Requirements requirements { get; set; }
}