检索Json文件并将字符串解析为C# [英] Retrieveing a Json file and parsing the string into c#

查看:116
本文介绍了检索Json文件并将字符串解析为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 using System.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆