How to get Json Array in C #?

I have a Json String Like this, and I wana load it into C # Array .. When I try to do this, I get an Exception

My line:

{ "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 is:

 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 tried this as well

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

Both cases got Failed ... How to download this. I am using Newtonsoft.Json Dll

+4
source share
2 answers

user2552410!

Perhaps you need to change the structure of your class. You can work with the list <>

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ConsoleApplication2.TestService; using Newtonsoft.Json; namespace ConsoleApplication2 { public class Customer { public string customerId { get; set; } public string CustomerName { get; set; } public string Age { get; set; } public string Gender { get; set; } public StudyInfoType[] StudyInfo { get; set; } public string visited { get; set; } public string billingId { get; set; } public string RegDate { get; set; } public string uploaded { get; set; } } public class StudyInfoType { string Modality {get; set;} string StudyName {get; set;} string ModalityId {get; set;} string StudyID {get; set;} string visitid {get; set;} string billingId {get; set;} string RegDate {get; set;} string uploaded {get; set;} string groupid { get; set; } } class Program { static void Main() { var temp = CustomerInfo(@"[{ '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' } ] } ]"); } public static List<Customer> CustomerInfo(string json) { var n = JsonConvert.DeserializeObject(json, new JsonSerializerSettings { ObjectCreationHandling = ObjectCreationHandling.Replace }); return JsonConvert.DeserializeObject<List<Customer>>(json); } } } 
+1
source

The way you created the objects, by mistake, 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 such things it's pretty amazing.

+7
source

Source: https://habr.com/ru/post/1489836/


All Articles