C# 如何使用json.Converter反序列化json
我有一个json:C# 如何使用json.Converter反序列化json,c#,json,windows-phone-8,json.net,deserialization,C#,Json,Windows Phone 8,Json.net,Deserialization,我有一个json: "objects": { "user0": { "uid": "1", } "user1": { "uid": "2", } "user2": {
"objects": {
"user0": {
"uid": "1",
}
"user1": {
"uid": "2",
}
"user2": {
"uid": "3",
}
.....
"userN": {
"uid": "N",
}
"venue0": {
"id": "1",
}
"venue1": {
"id": "2",
}
"venue2": {
"id": "3",
}
.....
"venueN": {
"id": "N",
}
}
我有一个模型:
[DataContract]
public class User
{
[DataMember(Name = "uid")]
public class string Uid {get; set;}
}
[DataContract]
public class Venue
{
[DataMember(Name = "id")]
public class string Id {get; set;}
}
[DataContract]
public class Objects
{
[DataMember(Name = "user1")]
public class User User1 {get; set;}
[DataMember(Name = "user2")]
public class User User2 {get; set;}
[DataMember(Name = "venue1")]
public class Venue Venue1 {get; set;}
[DataMember(Name = "venue2")]
public class Venue Venue2 {get; set;}
//I can't define all keys of json
// If the json contain 10000 users or venues, I must declare 10000 properties in class Objects?
}
我可以用JsonConverter
反序列化json吗
Objects objs = JsonConvert.DeserializeObject<Objects>(json);
Objects objs=JsonConvert.DeserializeObject(json);
您可以使用javascript序列化程序
导入命名空间
using System.Web.Script.Serialization;
并使用以下代码反序列化json字符串:
JavaScriptSerializer sr = new JavaScriptSerializer();
string jsondata = /*your json string here*/;
//Now with this line the Json string will be converted in MyObj1 object type
MyObj1 converted = sr.Deserialize<Object>(jsondata);
JavaScriptSerializer sr=新的JavaScriptSerializer();
string jsondata=/*此处为您的json字符串*/;
//现在,在这一行中,Json字符串将转换为MyObj1对象类型
MyObj1 converted=sr.Deserialize(jsondata);
有关更多信息,请参阅链接 您可以使用javascript序列化程序 导入命名空间
using System.Web.Script.Serialization;
并使用以下代码反序列化json字符串:
JavaScriptSerializer sr = new JavaScriptSerializer();
string jsondata = /*your json string here*/;
//Now with this line the Json string will be converted in MyObj1 object type
MyObj1 converted = sr.Deserialize<Object>(jsondata);
JavaScriptSerializer sr=新的JavaScriptSerializer();
string jsondata=/*此处为您的json字符串*/;
//现在,在这一行中,Json字符串将转换为MyObj1对象类型
MyObj1 converted=sr.Deserialize(jsondata);
有关更多信息,请参阅链接 您可以使用javascript序列化程序 导入命名空间
using System.Web.Script.Serialization;
并使用以下代码反序列化json字符串:
JavaScriptSerializer sr = new JavaScriptSerializer();
string jsondata = /*your json string here*/;
//Now with this line the Json string will be converted in MyObj1 object type
MyObj1 converted = sr.Deserialize<Object>(jsondata);
JavaScriptSerializer sr=新的JavaScriptSerializer();
string jsondata=/*此处为您的json字符串*/;
//现在,在这一行中,Json字符串将转换为MyObj1对象类型
MyObj1 converted=sr.Deserialize(jsondata);
有关更多信息,请参阅链接 您可以使用javascript序列化程序 导入命名空间
using System.Web.Script.Serialization;
并使用以下代码反序列化json字符串:
JavaScriptSerializer sr = new JavaScriptSerializer();
string jsondata = /*your json string here*/;
//Now with this line the Json string will be converted in MyObj1 object type
MyObj1 converted = sr.Deserialize<Object>(jsondata);
JavaScriptSerializer sr=新的JavaScriptSerializer();
string jsondata=/*此处为您的json字符串*/;
//现在,在这一行中,Json字符串将转换为MyObj1对象类型
MyObj1 converted=sr.Deserialize(jsondata);
有关更多信息,请参阅链接 我认为您的数据不能用合理的类型建模。您需要使用字典和动态对象。我设法反序列化了 数据: 代码:
public class RootObject
{
public Dictionary<string, dynamic> Objects { get; set; }
}
RootObject deserializedObject = JsonConvert.DeserializeObject<RootObject>(data);
我认为这是一个混乱,但它的工作。如果可以,请重新构造JSON。我认为您的数据不能用合理的类型建模。您需要使用字典和动态对象。我设法反序列化了 数据: 代码:
public class RootObject
{
public Dictionary<string, dynamic> Objects { get; set; }
}
RootObject deserializedObject = JsonConvert.DeserializeObject<RootObject>(data);
我认为这是一个混乱,但它的工作。如果可以,请重新构造JSON。我认为您的数据不能用合理的类型建模。您需要使用字典和动态对象。我设法反序列化了 数据: 代码:
public class RootObject
{
public Dictionary<string, dynamic> Objects { get; set; }
}
RootObject deserializedObject = JsonConvert.DeserializeObject<RootObject>(data);
我认为这是一个混乱,但它的工作。如果可以,请重新构造JSON。我认为您的数据不能用合理的类型建模。您需要使用字典和动态对象。我设法反序列化了 数据: 代码:
public class RootObject
{
public Dictionary<string, dynamic> Objects { get; set; }
}
RootObject deserializedObject = JsonConvert.DeserializeObject<RootObject>(data);
我认为这是一个混乱,但它的工作。如果可以,请重新构造JSON。您是否遇到错误或异常?您是否尝试过?它抛出了一个错误吗?或者,您是在问如何将json字符串加载到未定义所有用户和场地属性的类中?json可以包含许多用户和场地,我不知道如何描述模型。您是否遇到错误或异常?您尝试过吗?它抛出了一个错误吗?或者,您是在问如何将json字符串加载到未定义所有用户和场地属性的类中?json可以包含许多用户和场地,我不知道如何描述模型。您是否遇到错误或异常?您尝试过吗?它抛出了一个错误吗?或者,您是在问如何将json字符串加载到未定义所有用户和场地属性的类中?json可以包含许多用户和场地,我不知道如何描述模型。您是否遇到错误或异常?您尝试过吗?它抛出了一个错误吗?或者你是在问如何将json字符串加载到一个没有定义所有用户和场地属性的类中?json可以包含许多用户和场地,我不知道如何描述模型。感谢回复,但我使用的是Windows Phone 8,该项目与json.Net绑定。但是如果json包含obj5、obj6、obj7、obj8等等,你会得到任何异常吗?不,如果json包含10000个用户,我必须在类对象中声明10000个属性。我正在寻找其他方法来解决这个问题。您可以使用用户的列表属性。公共类列出用户{get;set;}用户或场地(或其他对象)。我不能使用列表。json不包含列表,只包含对象。JsonConvert无法将其反序列化为列表。感谢您的回复,但我使用的是Windows Phone 8,该项目与Json.Net绑定。但是如果json包含obj5、obj6、obj7、obj8等等,你会得到任何异常吗?不,如果json包含10000个用户,我必须在类对象中声明10000个属性。我正在寻找其他方法来解决这个问题。您可以使用用户的列表属性。公共类列出用户{get;set;}用户或场地(或其他对象)。我不能使用列表。json不包含列表,只包含对象。JsonConvert无法将其反序列化为列表。感谢您的回复,但我使用的是Windows Phone 8,该项目与Json.Net绑定。但是如果json包含obj5、obj6、obj7、obj8等等,你会得到任何异常吗?不,如果json包含10000个用户,我必须在类对象中声明10000个属性。我正在寻找其他方法来解决这个问题。您可以使用用户的列表属性。公共类列出用户{get;set;}用户或场地(或其他对象)。我不能使用列表。json不包含列表,只包含对象。JsonConvert无法将其反序列化为列表。感谢您的回复,但我使用的是Windows Phone 8,该项目与Json.Net绑定。但是如果json包含obj5、obj6、obj7、obj8等等,你会得到任何异常吗?不,如果json包含10000个用户,我必须在类对象中声明10000个属性。我正在寻找其他方法来解决这个问题。您可以使用用户的列表属性。公共类列出用户{get;set;}用户或场地(或其他对象)。我不能使用列表。json不包含列表,只包含对象。JsonConvert无法反序列化