SATHISH kumar
SATHISH kumar

Reputation: 31

How to convert Json array to list in c#

How to convert Json array to list of objects in c#

MY Json array:

    {"allAdultFares":["0-5000.00","1-8000.00"],"Flag":"N"},

Class:

   public List<Sellrate> allAdultFares { get; set; }



    public class Sellrate
    {
    public string Singe { get; set; }
     public string Double { get; set; }
     }

I need O/p:

Singe :5000

Double :8000

Upvotes: 0

Views: 6568

Answers (3)

Ashokreddy
Ashokreddy

Reputation: 350

Single: { "field1":"value1","field2":"value2" }
Array: [ { "field1":"value1","field2":"value2" }, { "field1":"value1","field2":"value2" } ]


public class Test
{
  public string field1 { get; set; }
  public string field2 { get; set; } 
}  


Test myDeserializedObj = (Test)JavaScriptConvert.DeserializeObject(Request["jsonString"], typeof(Test));


List<test> myDeserializedObjList = (List<test>)Newtonsoft.Json.JsonConvert.DeserializeObject(Request["jsonString"], typeof(List<test>));

Upvotes: 0

SATHISH kumar
SATHISH kumar

Reputation: 31

i changed & getting o/p

       public string[] allAdultFares{ get; set; }

Upvotes: 1

Maor Veitsman
Maor Veitsman

Reputation: 1564

Here's some simple code to parse your json without creating a proper class to represent its structure like Jon suggested. I might have misunderstood the exact structure of your json so here is the sample json I worked with, perhaps you will need to make small adjustments to it will fit your case:

{ 
  "rateDetails":[
    {
      "date":"19-9-2015",
      "allAdultFares":["0-5000.00","1-8000.00"],
      "Flag":"N"
    },
    {
      "date":"20-9-2015",
      "allAdultFares":["0-9000.00","1-9000.00"],
      "Flag":"N"
    }
  ]
}

I used JSon.Net to parse the file, you can get it from nuget.

        var input = JObject.Parse(File.ReadAllText("sample.json"));
        var rateDetails = (JArray)input["rateDetails"];
        var a = rateDetails
                    .Select(t => (JArray)t["allAdultFares"])
                    .Select(t => 
                        new Sellrate() 
                        { 
                          Singe = t[0].ToString().Split('-')[1].Replace(@"""", ""), 
                          Double = t[1].ToString().Split('-')[1].Replace(@"""", "") 
                        }).ToList();

Upvotes: 1

Related Questions