.NET处理JSON提要
我正在寻找一个简单的例子,从url调用提要,然后在数据中循环,在C#中提取值 我设法将提要数据放入如下字符串变量中。我查看了newtonsoft.Json dll,但找不到一个简单的提取数据的示例。数据并不复杂,我已将其添加到底部 基本上,feedData现在包含了我的JSON数据,我想把它转换成一个JSON对象,然后foreach将值取出.NET处理JSON提要,.net,.net,我正在寻找一个简单的例子,从url调用提要,然后在数据中循环,在C#中提取值 我设法将提要数据放入如下字符串变量中。我查看了newtonsoft.Json dll,但找不到一个简单的提取数据的示例。数据并不复杂,我已将其添加到底部 基本上,feedData现在包含了我的JSON数据,我想把它转换成一个JSON对象,然后foreach将值取出 static void Main(string[] args) { string _feedData = GetJ
static void Main(string[] args)
{
string _feedData = GetJSONFeed();
}
public static string GetJSONFeed()
{
string formattedUri = "http://www.myJsonFeed.com/blah.json";
HttpWebRequest webRequest = GetWebRequest(formattedUri);
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
string jsonResponse = string.Empty;
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
jsonResponse = sr.ReadToEnd();
}
return jsonResponse;
}
private static HttpWebRequest GetWebRequest(string formattedUri)
{
// Create the request’s URI.
Uri serviceUri = new Uri(formattedUri, UriKind.Absolute);
// Return the HttpWebRequest.
return (HttpWebRequest)System.Net.WebRequest.Create(serviceUri);
}
我的JSON数据如下所示:
[
{
"id": "9448",
"title": "title title title",
"fulltext": "main body text",
"url": "http://www.flikr.co.uk?id=23432"
},
{
"id": "9448",
"title": "title title title",
"fulltext": "main body text",
"url": "http://www.flikr.co.uk?id=23432"
}
]
谢谢你的帮助。
Rob创建一个类来保存提要数据的实例
public class FeedData
{
public string id { get; set; }
public string title { get; set; }
public string fulltext { get; set; }
public string url { get; set; }
}
然后,将json响应作为字符串反序列化到FeedData对象列表中
var serializer = new DataContractJsonSerializer(typeof(List<FeedData>));
using (var stream = new MemoryStream(Encoding.Unicode.GetBytes(jsonResponse)))
{
var serializer = new DataContractJsonSerializer(typeof(List<FeedData>));
return serializer.ReadObject(ms) as List<FeedData>;
}
var serializer=newdatacontractjsonserializer(typeof(List));
使用(var stream=newmemoryStream(Encoding.Unicode.GetBytes(jsonResponse)))
{
var serializer=newdatacontractjsonserializer(typeof(List));
将serializer.ReadObject(ms)作为列表返回;
}
请注意,您的返回值现在应该是
List
或IEnumerable
而不是JSON对象,我想您需要将JSON字符串解析为CLR对象,对吗
本页提到了这一点。遵循项目:
如果您只对从JSON获取值感兴趣,没有要序列化或反序列化的类,或者JSON与您的类完全不同,并且您需要手动读取和写入对象,那么您应该使用LINQ to JSON。LINQtoJSON允许您在.NET中轻松读取、创建和修改JSON
以及LINQ到JSON的示例:
string json = @"{
""Name"": ""Apple"",
""Expiry"": new Date(1230422400000),
""Price"": 3.99,
""Sizes"": [
""Small"",
""Medium"",
""Large"
]
}";
JObject o = JObject.Parse(json);
string name = (string)o["Name"];
// Apple
JArray sizes = (JArray)o["Sizes"];
string smallest = (string)sizes[0];
// Small
这篇文章有你需要的一切: