Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Get Json Array in C# ?

Tags:

json

arrays

c#

I have a Json String Like this ,, and i wana load it in C# Array .. When i try to do this i am getting Exception

My String :

 {
"customerInformation":
[
  {
     "customerId":"123",
     "CustomerName":"",
     "Age":39,
     "Gender":"Male",
     "StudyInfo":[
        {
           "Modality":"XRAY",
           "StudyName":"Test Name",
           "ModalityId":"1",
           "StudyID":"10923",
           "visitid":41549113,
           "billingId":"456",
           "RegDate":"mm/dd/yyyy",
           "uploaded":"1",
           "groupid":"1"

        },
        {
           "Modality":"XRAY",
           "StudyName":"CT Test Name",
           "ModalityId":"1",
           "StudyID":"10924",
           "visitid":41549113,
           "billingId":"459",
           "RegDate":"mm/dd/yyyy",
           "uploaded":"1",
           "groupid":"1"

        }
     ]
  },

  {
     "customerId":"928",
     "CustomerName":"",
     "Age":49,
     "Gender":"FeMale",
     "StudyInfo":[
        {
           "Modality":"XRAY",
           "StudyName":"Test Name",
           "ModalityId":"1",
           "StudyID":"10923",
           "visitid":41549113,
           "billingId":"456",
           "RegDate":"mm/dd/yyyy",
           "uploaded":"1",
           "groupid":"1"
        },
        {
           "Modality":"XRAY",
           "StudyName":"CT Test Name",
           "ModalityId":"1",
           "StudyID":"10924",
           "visitid":41549113,
           "billingId":"459",
           "RegDate":"mm/dd/yyyy",
           "uploaded":"1",
           "groupid":"1"
        }
     ]
  }

]

 }

My Code :

public class Attributes
{


    public string[] customerId { get; set; }
    public string[] CustomerName { get; set; }
    public string[] Age { get; set; }
    public string[] Gender { get; set; }
    public string[] StudyInfo { get; set; }
    public string[] Modality { get; set; }
    public string[] StudyName { get; set; }
    public string[] ModalityId { get; set; }
    public string[] StudyID { get; set; }
    public string[] visitid { get; set; }
    public string[] billingId { get; set; }
    public string[] RegDate { get; set; }
    public string[] uploaded { get; set; }
}

public class DataJsonAttributeContainer
{
    public List<Attributes> attributes { get; set; }
}

 public static T DeserializeFromJson<T>(string json)
    {
        T deserializedProduct = JsonConvert.DeserializeObject<T>(json);
       return deserializedProduct;
    }

   public void testing()
    {
  var container = DeserializeFromJson<DataJsonAttributeContainer>(JsonString);

    }

"This returns Null"

And I have tried this also

            JArray jArray = (JArray)JsonConvert.DeserializeObject(JsonStr);
            dynamic dynObj1 = jArray.OrderByDescending(x => x["customerId"]);

Both Cases got Failed... How to load this .. I am using Newtonsoft.Json Dll

like image 542
SAR Avatar asked Jul 05 '13 05:07

SAR


1 Answers

The way you generated you objects is wrong, It should be something like:

public class StudyInfo
{
    public string Modality { get; set; }
    public string StudyName { get; set; }
    public string ModalityId { get; set; }
    public string StudyID { get; set; }
    public int visitid { get; set; }
    public string billingId { get; set; }
    public string RegDate { get; set; }
    public string uploaded { get; set; }
    public string groupid { get; set; }
}

public class CustomerInformation
{
    public string customerId { get; set; }
    public string CustomerName { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
    public List<StudyInfo> StudyInfo { get; set; }
}

public class RootObject
{
    public List<CustomerInformation> customerInformation { get; set; }
}

By the way, you can try json2charp, for stuff like this, it's pretty awesome.

like image 76
Dimitar Dimitrov Avatar answered Oct 01 '22 10:10

Dimitar Dimitrov