我正在构建一个 wp7 应用程序。我想解析来自连续 tcp 流的 JSON 字符串。我想要一个可以从流中解析的 json 解析器。是否有任何 SAX JSON 解析器可以从流中解析。我正在寻找一个 tcp流解析器。这是来自我的服务器的连续流。我想解析流并动态生成 JSON 对象。
问问题
601 次
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 回答