代码之家  ›  专栏  ›  技术社区  ›  Young Perry

C#从网站下载的JSON文本中获取单个数据

  •  0
  • Young Perry  · 技术社区  · 7 年前

    我已经为此搜索了很长一段时间,我没有找到任何解决我的问题的方法,这就是: 我一直在尝试从这里看到的整个源代码中分别获取json数据:

    {"TargetId":0,"ProductType":null,"AssetId":1239281845,"ProductId":0,"Name":"❤️🍀𝐒𝐀𝐋𝐄❗️🍀❤️ Red&Black Flannel + Backpack","Description":"Shirt Image","AssetTypeId":1,"Creator":{"Id":124026176,"Name":"TheDestroyerPeter","CreatorType":"User","CreatorTargetId":124026176},"IconImageAssetId":0,"Created":"2017-12-12T19:48:24.693Z","Updated":"2017-12-12T19:48:24.693Z","PriceInRobux":null,"PriceInTickets":null,"Sales":0,"IsNew":false,"IsForSale":false,"IsPublicDomain":false,"IsLimited":false,"IsLimitedUnique":false,"Remaining":null,"MinimumMembershipLevel":0,"ContentRatingTypeId":0}
    

    现在,我一直在尝试使用C#获取产品名称,产品名称是“红色和黑色法兰绒+背包”,我的问题是,我还没有找到提取数据的方法,当我找到数据时,我无法获得正确的数据,因为相反,如果给我“TheDestroyerPeter”

    我已经编写了代码,并删除了它,它真的很草率,需要一段时间来重写,我很感激任何解决方案

    -不管我是谁

    1 回复  |  直到 7 年前
        1
  •  1
  •   Irakli Gabisonia    7 年前

    您可以使用 JavaScriptSerializer 类,它是 System.Web.Script 命名空间。

    例如:

    var jsonString = @"{""name"":""John Doe"",""age"":20}";
    var JSONObj = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(jsonString );
    

    然后 JSONObj["name"] ; 给你 "John Doe"

    在这种情况下,您可以使用它:

        public class Creator
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string CreatorType { get; set; }
            public int CreatorTargetId { get; set; }
        }
    
        public class RootObject
        {
            public int TargetId { get; set; }
            public object ProductType { get; set; }
            public int AssetId { get; set; }
            public int ProductId { get; set; }
            public string Name { get; set; }
            public string Description { get; set; }
            public int AssetTypeId { get; set; }
            public Creator Creator { get; set; }
            public int IconImageAssetId { get; set; }
            public DateTime Created { get; set; }
            public DateTime Updated { get; set; }
            public object PriceInRobux { get; set; }
            public object PriceInTickets { get; set; }
            public int Sales { get; set; }
            public bool IsNew { get; set; }
            public bool IsForSale { get; set; }
            public bool IsPublicDomain { get; set; }
            public bool IsLimited { get; set; }
            public bool IsLimitedUnique { get; set; }
            public object Remaining { get; set; }
            public int MinimumMembershipLevel { get; set; }
            public int ContentRatingTypeId { get; set; }
        }
    

    使用Newtonsoft。Json

     var jsonString = @"{""TargetId"":0,""ProductType"":null,""AssetId"":1239281845,""ProductId"":0,""Name"":""❤️🍀𝐒𝐀𝐋𝐄❗️🍀❤️ Red&Black Flannel + Backpack"",""Description"":""Shirt Image"",""AssetTypeId"":1,""Creator"":{""Id"":124026176,""Name"":""TheDestroyerPeter"",""CreatorType"":""User"",""CreatorTargetId"":124026176},""IconImageAssetId"":0,""Created"":""2017-12-12T19:48:24.693Z"",""Updated"":""2017-12-12T19:48:24.693Z"",""PriceInRobux"":null,""PriceInTickets"":null,""Sales"":0,""IsNew"":false,""IsForSale"":false,""IsPublicDomain"":false,""IsLimited"":false,""IsLimitedUnique"":false,""Remaining"":null,""MinimumMembershipLevel"":0,""ContentRatingTypeId"":0}";
                var obj = JsonConvert.DeserializeObject<RootObject>(jsonString);
    
                Console.WriteLine(obj.Creator.Name);  //"TheDestroyerPeter"