Programming Geek
Programming Geek

Reputation: 244

Deserialize json object into SQL DB using Json.net

I want to deserialize json object into SQL DB using Json.net

Json File :

{
  "requirements": {
    "requirement": [
      {
        "Id": "req1",
        "desc": "description of requirement1"
      },
      {
        "Id": "req2",
        "desc": "description of requirement2",
      },
      {
        "desc": "description of requirement3",
        "Id": "req3"
      }
    ]
  }
}

Such that values for 'Id' attribute should be places in ID column of Requirement table and values for 'desc' attribute should be places in DESC column of Requirement table

    ID        DESC
    req1      description of requirement1                       
    req2      description of requirement2                       
    req3      description of requirement3       

Upvotes: 1

Views: 5777

Answers (2)

Yanga
Yanga

Reputation: 3002

        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();


U can use http://json2csharp.com/ to create your class:

    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; }
    }

Upvotes: 1

M. Wiśnicki
M. Wiśnicki

Reputation: 6203

You can generate your class using json2sharp tool and use deserialize object like this.

    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);

And use OrderByDescending

x.requirements.requirement.OrderByDescending(d => d.Id);

Upvotes: 2

Related Questions