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

时间:2014-06-02 05:31:59

标签: c# json

我从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”值列表放入下拉框中。

由于

2 个答案:

答案 0 :(得分:1)

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

public class MyClass
        {

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

        }

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

答案 1 :(得分:0)

您可以创建一个与您的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选项更简单,但您不会从使用它的静态类型中受益。请享用! :)