用于windows phone的C#中的Json流解析器
本文关键字:Json 中的 windows phone 用于 | 更新日期: 2023-09-27 18:24:17
我正在构建一个wp7应用程序。我想解析来自连续tcp流的JSON字符串。我想要一个json解析器,它可以从流中进行解析。是否有任何SAX JSON解析器可以从流中进行解析。我正在寻找一个tcp流解析器,它是来自我的服务器的连续流。我想解析流并动态生成JSON对象。
您可以使用JSON.NET库,您可以在这里获得它:http://json.codeplex.com/
我从codeplex陈述了JSON.NET 的这些功能
- 灵活的JSON序列化程序,用于在.NET对象和JSON之间进行转换
- LINQ to JSON,用于手动读取和写入JSON
- 高性能,比.NET内置的JSON序列化程序更快
- 编写缩进、易于阅读的JSON
- 将JSON转换为XML和从XML转换JSON
- 支持.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进行连接。检查此问题通过TCP订阅,反序列化每个收到的JSON行