繁体   English   中英

使用JSON.net在C#中读取JSON文件

[英]Reading JSON file inside C# using JSON.net

我已经从Steam网络API检索了一个很大的JSON文件。 它具有多个对象和令牌。 我想知道在C#中读取此文件的最佳方法是什么。

这里有一个程序必须解码的数据示例: http : //pastebin.com/nNw7usZW

我唯一感兴趣的数据是对象“ rgDescriptions”中的“ icon_url_large”,“ market_name”和“ type”项。 到目前为止,我已经尝试使用

WebClient c = new WebClient();
var json = c.DownloadString(url);
JObject o = JObject.Parse(json);

不太确定从何处开始或如何使用解析器结果。 最后,我想将“ market_name”值列表放入下拉框。

谢谢

您可以使用Newtonsoft.Json.dll ,因为您必须创建一个类并在其中声明一个属性,以便可以DeserializeObject并仅使用所需的那些属性。

喜欢

public class MyClass
        {

            public int First { get; set; }
            public string Name { get; set; }

        }

 var abc = JsonConvert.DeserializeObject<MyClass>(jsonData);

您可以创建一个与json表示形式匹配的类,然后使用JsonConvert.DeserializeObject方法对其进行反序列化,也可以保留JObject。 JObject是动态对象,因此您进入动态然后轻松地浏览对象树。

使用JsonConvert.DeserializeObject

class MyDataObject
{
   public string Data1{get;set;}
   [...]
}

string jsonText = ...;
var dataObject = JsonConvert.DeserializeObject<MyDataObject>(jsonText);
var myData = dataObject.Data1;

使用JObject

WebClient c = new WebClient();
var json = c.DownloadString(url);
dynamic o = JObject.Parse(json); 

var myData = o.Data1; 

JObject选项更简单,但是您不能从使用它的静态类型中受益。 请享用! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM