Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用json.Converter反序列化json_C#_Json_Windows Phone 8_Json.net_Deserialization - Fatal编程技术网

C# 如何使用json.Converter反序列化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": {

我有一个json:

 "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无法反序列化