我如何从JSON字符串获取值

时间:2019-10-04 12:58:13

标签: c# .net json

我正在尝试从下面的JSON获取"response"对象的值。 我有一个问题,因为我不知道如何从JSON获取数据。我是新来的。

{
    "error": false,
    "response": {
        "id": 6818,
        "name": "Krashnz",
        "avatar": "https:\/\/static.truckersmp.com\/avatarsN\/6818.1538179228.png",
        "smallAvatar": "https:\/\/static.truckersmp.com\/avatarsN\/small\/6818.1538179228.png",
        "joinDate": "2014-11-14 01:33:03",
        "steamID64": 76561198046080290,
        "steamID": "76561198046080290",
        "groupName": "Developer",
        "groupID": 2,
        "banned": false,
        "bannedUntil": null,
        "displayBans": false,
        "permissions": {
            "isGameAdmin": true,
            "showDetailedOnWebMaps": false
        },
        "vtc": {
            "id": 1,
            "name": "TruckersMP Developers",
            "tag": "TMP-DEV",
            "inVTC": true,
            "memberID": 1579
        }
    }
}

我该怎么做?我在C#中工作

1 个答案:

答案 0 :(得分:3)

您可以使用json2csharp之类的工具将json转换为C#类。然后使用Newtonsoft.Json nuget包将json反序列化到您的类中。

创建下面的类。然后您可以像这样反序列化:

var json = // your json string
var root = JsonConvert.DeserializeObject<RootObject>(json);
var response = root.Response;


// classes below
public class Permissions
{
    public bool isGameAdmin { get; set; }
    public bool showDetailedOnWebMaps { get; set; }
}

public class Vtc
{
    public int id { get; set; }
    public string name { get; set; }
    public string tag { get; set; }
    public bool inVTC { get; set; }
    public int memberID { get; set; }
}

public class Response
{
    public int id { get; set; }
    public string name { get; set; }
    public string avatar { get; set; }
    public string smallAvatar { get; set; }
    public string joinDate { get; set; }
    public long steamID64 { get; set; }
    public string steamID { get; set; }
    public string groupName { get; set; }
    public int groupID { get; set; }
    public bool banned { get; set; }
    public object bannedUntil { get; set; }
    public bool displayBans { get; set; }
    public Permissions permissions { get; set; }
    public Vtc vtc { get; set; }
}

public class RootObject
{
    public bool error { get; set; }
    public Response response { get; set; }
}