C#中的Json流解析器windows phone

问题描述:

我正在构建一个wp7应用程序。我想解析来自连续tcp流的JSON字符串。我想要一个可以从流解析的json解析器。是否有任何SAX JSON解析器从一个流解析。我正在寻找一个tcp流解析器。这是连续流来自我的服务器。而我想分析流并生成JSON对象。C#中的Json流解析器windows phone

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

我州从CodePlex上JSON.NET这些功能

  • 灵活的JSON序列化的.NET对象和JSON之间的转换
  • 的LINQ to JSON手动读取和写入JSON
  • 高性能,比.NET的内置JSON序列化
  • 写我快ndented,易于阅读JSON
  • 转换JSON和XML
  • 支持.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"]}" 

EDIT

这里是一个小例子:

 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进行连接。检查这个问题Subscribing over TCP, deserializing each recieved JSON line

+0

我正在寻找一个tcp流parser.that是连续流来自我的server.And我想解析流并生成JSON对象。 – rakesh

+0

难道你不能接收流的一部分,保存到一个字符串,然后反序列化它? – Swift

+0

请注意,您需要所有JSON字符串才能对其进行反序列化,所以唯一的解决方案是从网络获取字符串,然后反序列化它 – Swift