如何解决C#中的增量JSON解析
我必须承认,我对JavaScriptSerializer不太熟悉,但是如果您愿意使用JSON.net,它的功能就JsonReader
很像DataReader
。
using(var jsonReader = new JsonTextReader(myTextReader)){
while(jsonReader.Read()){
//evaluate the current node and whether it's the name you want
if(jsonReader.TokenType.PropertyName=="add"){
//do what you want
} else {
//break out of loop.
}
}
}
解决方法
我试图增量解析JSON,即基于条件。
以下是我的json消息,我目前正在使用JavaScriptSerializer反序列化消息。
string json = @"{"id":2,"method":"add","params":
{"object":
{"name":"test"
"id":"1"},"position":"1"}
}";
JavaScriptSerializer js = new JavaScriptSerializer();
Message m = js.Deserialize<Message>(json);
消息类如下所示:
public class Message
{
public string id { get; set; }
public string method { get; set; }
public Params @params { get; set; }
public string position { get; set; }
}
public class Params
{
public string name { get; set; }
public string id{ get; set;
}
上面的代码可以毫无问题地解析消息。但它会立即解析整个JSON。我希望仅在“方法”参数的值为“添加”时才继续进行解析。如果不是“添加”,那么我不希望它继续解析消息的其余部分。有没有一种方法可以基于C#中的条件进行增量解析?(环境:带有.Net
3.5的VS 2008)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。