用于windows phone的C#中的Json流解析器

本文关键字:Json 中的 windows phone 用于 | 更新日期: 2023-09-27 18:24:17

我正在构建一个wp7应用程序。我想解析来自连续tcp流的JSON字符串。我想要一个json解析器,它可以从流中进行解析。是否有任何SAX JSON解析器可以从流中进行解析。我正在寻找一个tcp流解析器,它是来自我的服务器的连续流。我想解析流并动态生成JSON对象。

用于windows phone的C#中的Json流解析器

您可以使用JSON.NET库,您可以在这里获得它:http://json.codeplex.com/

我从codeplex陈述了JSON.NET 的这些功能

  • 灵活的JSON序列化程序,用于在.NET对象和JSON之间进行转换
  • LINQ to JSON,用于手动读取和写入JSON
  • 高性能,比.NET内置的JSON序列化程序更快
  • 编写缩进、易于阅读的JSON
  • 将JSON转换为XML和从XML转换JSON
  • 支持.NET 2、.NET 3.5、.NET 4、Silverlight、Windows Phone和Windows 8

这里有一个小例子:

public class MyClass
  {
    public string MyProperty;
    public string[] MyArray;        
  }
string json = JsonConvert.SerializeObject(new MyClass() { MyProperty = "Test",  MyArray = new string[] { "Test1", "Test2" } });
    //{"MyProperty":"Test","MyArray":["Test1","Test2"]}"

编辑

这里有一个小例子:

      System.Net.WebClient client = new System.Net.WebClient();
      using (var stream = client.OpenRead(url))
      {      
        byte a = 0;
        var list = new List<byte>();
        do{
          a = (byte)stream.ReadByte();
          list.Add(a);
          if(/*Test if valid JSON string*/)
          {
            var str = System.Text.Encoding.UTF8.GetString(list.ToArray());
            JsonConvert.DeserializeObject<MyClass>(str);
          }
        }while(a != -1)
      }

您可以使用TcpClient进行连接。检查此问题通过TCP订阅,反序列化每个收到的JSON行