-1

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

4

1 回答 1

0

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

我从 codeplex 陈述 JSON.NET 的这些特性

  • 灵活的 JSON 序列化器,用于在 .NET 对象和 JSON 之间进行转换
  • LINQ to JSON 用于手动读写 JSON
  • 高性能,比 .NET 的内置 JSON 序列化程序更快
  • 编写缩进、易读的 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"]}"

编辑

这是一个小例子:

      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 received JSON line

于 2013-07-23T09:41:31.367 回答