2013-07-23 64 views
-1

我正在構建一個wp7應用程序。我想解析來自連續tcp流的JSON字符串。我想要一個可以從流解析的json解析器。是否有任何SAX JSON解析器從一個流解析。我正在尋找一個tcp流解析器。這是連續流來自我的服務器。而我想分析流並生成JSON對象。C#中的Json流解析器windows phone

回答

0

您可以使用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