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

本文关键字:JSON 读取 文件 net 使用 | 更新日期: 2023-09-27 18:06:24

我从Steam web api中检索了一个相当大的JSON文件。它有多个对象和令牌。我想知道在c#中阅读这个文件的最好方法是什么。

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

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

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

不确定从这里开始进行,或者如何使用解析器结果。最后,我想把"market_name"值的列表放到下拉框中。

谢谢

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

您可以使用Newtonsoft.Json.dll,因为您必须创建一个类并在其中声明属性,以便您可以反序列化对象并仅使用您想要的属性。

public class MyClass
        {
            public int First { get; set; }
            public string Name { get; set; }
        }
 var abc = JsonConvert.DeserializeObject<MyClass>(jsonData);

你可以创建一个类匹配你的json表示和反序列化它使用JsonConvert。方法,或者保留您的JObject。对象是动态对象,因此您可以动态地查看对象树。

使用JsonConvert。DeserializeObject

class MyDataObject
{
   public string Data1{get;set;}
   [...]
}
string jsonText = ...;
var dataObject = JsonConvert.DeserializeObject<MyDataObject>(jsonText);
var myData = dataObject.Data1;

使用jobobject

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

JObject选项更简单,但是使用它不会从静态类型中获益。享受吧!:)