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
我正在寻找一个tcp流parser.that是连续流来自我的server.And我想解析流并生成JSON对象。 – rakesh
难道你不能接收流的一部分,保存到一个字符串,然后反序列化它? – Swift
请注意,您需要所有JSON字符串才能对其进行反序列化,所以唯一的解决方案是从网络获取字符串,然后反序列化它 – Swift