检索Json文件并将字符串解析为C# [英] Retrieveing a Json file and parsing the string into c#
问题描述
嗨
我正在尝试从http地址读取内容,并从那里解析Json字符串.
它说它不能从system.IO.Stream转换为字符串.
它的"List<collectiondataweeks> weeks = Newtonsoft.Json.JsonConvert.DeserializeObject<list><collectiondataweeks>>(json);"
中的(Json)"不能识别为字符串.我想念什么?
Hi
I''m trying to read from a http address and from there parse in a Json string.
It says it cannot convert from system.IO.Stream to string.
Its the "(Json)" in "List<collectiondataweeks> weeks = Newtonsoft.Json.JsonConvert.DeserializeObject<list><collectiondataweeks>>(json);"
it doesn''t recognize as a string. What am I missing?
public class collectionDataWeeks
{
public string week { get; set; }
public string mothertext { get; set; }
public string babytext { get; set; }
}
private void myButton1_Click(object sender, RoutedEventArgs e)
{
string weekNumber = "2";
string uriHost = "http://.....php?id=";
string uriGet = uriHost + weekNumber;
var client = new WebClient();
client.OpenReadCompleted += new OpenReadCompletedEventHandler(returnJson);
client.OpenReadAsync(new Uri(uriGet));
}
private void returnJson (object sender, OpenReadCompletedEventArgs e)
{
var json=e.Result;
List<collectiondataweeks> weeks = Newtonsoft.Json.JsonConvert.DeserializeObject<list><collectiondataweeks>>(json);
string uge = "2";
var varWeeks = weeks.Where(x => x.week == uge);
foreach (collectionDataWeeks itm in varWeeks)
{
textBoxWeek0.Text = itm.week;
}
}
推荐答案
如何使用System.Runtime.Serialization.Json.DataContractJsonSerializer
而不是使用第三方的东西?请参阅:
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx [ ^ ],
http://msdn.microsoft.com/en-us/library/ms733127.aspx [ ^ ].
—SA
How about usingSystem.Runtime.Serialization.Json.DataContractJsonSerializer
instead of using the 3rd-party stuff? Please see:
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx[^],
http://msdn.microsoft.com/en-us/library/ms733127.aspx[^].
—SA
我忘了做流阅读器!
...
I forgot to do streamreader!!
...
private void returnJson(object sender, OpenReadCompletedEventArgs e)
{
Stream stream = e.Result;
StreamReader itmStreamReader = new StreamReader(stream);
string json = itmStreamReader.ReadToEnd();
List<collectiondataweeks> weeks = Newtonsoft.Json.JsonConvert.DeserializeObject<list><collectiondataweeks>>(json);
stream.Close();
itmStreamReader.Close();
string uge = "2";
}
...
现在一切正常,并且Json作为字符串从URL返回.
[edit]添加了代码块[/edit]
...
Now everything works and the Json is returned from the URL as a string.
[edit]code block added[/edit]
如果您介意的话,可以查看我写的有关序列化的文章,其中包括源代码,您可以随时找出缺少的东西.
在序列化之间无缝切换 [
If you mind, you can check an article I wrote about serialization, source code is included, you can always find out what''s missing.
Switching Seamlessly Between Serialization[^]
这篇关于检索Json文件并将字符串解析为C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!