Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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对象的json对象数组_C#_Arrays_Json_Serialization - Fatal编程技术网

C# 反序列化包含json对象的json对象数组

C# 反序列化包含json对象的json对象数组,c#,arrays,json,serialization,C#,Arrays,Json,Serialization,如何在c#中反序列化json对象数组?以下是我的json: [{"id":"255521115", "user":"username","userinfo":{"id":"158","online":"false"}}] 我有以下代码来获取用户名: [JsonProperty("user")] public string Username { get; set; } 如何获取userinfo的值?我想要userinfo对象中的在线值 public class classname {

如何在c#中反序列化json对象数组?以下是我的json:

[{"id":"255521115", "user":"username","userinfo":{"id":"158","online":"false"}}]
我有以下代码来获取用户名:

 [JsonProperty("user")]
 public string Username { get; set; }
如何获取userinfo的值?我想要userinfo对象中的在线值

public class classname
{
   //Create property to hold value
    public string Username { get; set; }
}
现在反序列化将起作用:

using (var sr = new StringReader(json))
using (var jr = new JsonTextReader(sr))
{
    var js = new JsonSerializer();
    var u = js.Deserialize<classname>(jr);
    Console.WriteLine(u.Username );
}
使用(var sr=newstringreader(json))
使用(var jr=新的JsonTextReader(sr))
{
var js=new JsonSerializer();
var u=js.反序列化(jr);
Console.WriteLine(u.Username);
}

我认为这将帮助您反序列化VS2013中有一个很酷的功能。如果您将JSON复制到剪贴板,并在Visual Studio中单击
EDIT->Paste Special->Paste JSON as class
,它将为您生成类结构。如果需要,只需重命名某些属性。在您的情况下,类的修改版本将是:

public class Obj
{
    public string Id { get; set; }

    [JsonProperty("User")]
    public string UserName { get; set; }

    public Userinfo Userinfo { get; set; }
}

public class Userinfo
{
    public string Id { get; set; }
    public string Online { get; set; }
}
然后您可以轻松地反序列化JSON字符串:

var json = @"[{""id"":""255521115"", ""user"":""username"",""userinfo"":{""id"":""158"",""online"":""false""}}]";
var objs = JsonConvert.DeserializeObject<IList<Obj>>(json);
var json=@“[{”“id”“:”“255521115”“”“user”“:”“username”“userinfo”“:{”“id”“:”“158”“online”“:”“false”“}]”;
var objs=JsonConvert.DeserializeObject(json);

您剪掉了一些要发布的右括号,或者您的JSON无效。请注意:)仍然无效;很可能是
[{id:“255521115”,“user:“username”,“userinfo:{id:“158”,“online:“false”}]
我不知道VisualStudio的把戏。非常节省时间。非常感谢!