我有一个Json字符串像这样,我wana加载它在C#数组..当我尝试这样做我得到例外
我的字符串:
{
"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"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
"这会返回Null"
我也尝试过这个
JArray jArray = (JArray)JsonConvert.DeserializeObject(JsonStr);
dynamic dynObj1 = jArray.OrderByDescending(x => x["customerId"]);
Run Code Online (Sandbox Code Playgroud)
两个案件都失败了......如何加载这个......我正在使用Newtonsoft.Json Dll
你生成对象的方式是错误的,它应该是这样的:
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; }
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,你可以尝试json2charp,对于这样的东西,它非常棒.
小智 1
用户2552410!
也许你需要改变你的班级结构。您可以使用列表<>
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5438 次 |
| 最近记录: |