2012-07-24 177 views
0

即时通讯目前试图筛选从一个文件中的一些信息,我们已经来到我们的应用程序从Web服务器如何解析json对象?

格式的信息是目前是:

{"ns2":"ns2.xxxx.xxx","ns1":"ns1.xxxx.xxx","classname":"com.logicboxes.foundation.sfnb.order.domorder.DomCno","privacyprotectedallowed":"true","isOrderSuspendedUponExpiry":"false","noOfNameServers":"2","isprivacyprotected":"true","classkey":"domcno","isImmediateReseller":"false"} 

我们希望做的是提取物信息一块一块的,但我们正在努力开始与NS2和NS1领域

之前,我们有以下格式化我们的数据,但我不能似乎周围的改变,使其过滤掉上面的字符串

Dim m As New Regex("(?<=<div id=""xxxx"">).+(?=</div>)") 

我在想,如果有人在这里可以给我下去

感谢

+0

这是JSON,使用JSON解析器(NewtonSoft.Json是第一这是我想到的) – 2012-07-24 13:36:36

+0

仅供参考 - 新信息blob是一个JSON对象。已经有很多解析器可用。不需要使用笨重的正则表达式。 =) – 2012-07-24 13:36:39

回答

2

在你的情况的路径,你可以做这样的事情:

你的JSON结果作为.NET反对

string json = "{"ns2":"ns2.xxxx.xxx","ns1":"ns1.xxxx.xxx","classname":"com.logicboxes.foundation.sfnb.order.domorder.DomCno","privacyprotectedallowed":"true","isOrderSuspendedUponExpiry":"false","noOfNameServers":"2","isprivacyprotected":"true","classkey":"domcno","isImmediateReseller":"false"}"; 


public class Blob 
{ 
     public string ns2 {get;set;} 
     public string ns1 {get;set;} 
     public string classname {get;set;} 
     public bool privacyprotectedallowed {get;set;} 
     public bool isOrderSuspendedUponExpiry{get;set;} 
     public int noOfNameServers{get;set;} 
     public bool isprivacyprotected{get;set;} 
     public string classkey{get;set;} 
     public bool isImmediateReseller{get;set;} 
} 

您可以使用该库将它转换:http://james.newtonking.com/projects/json-net.aspx

这里的例子:

var Blob = JsonConvert.DeserializeObject<Blob>(json); 

希望这可以帮助你!

我也建议看一下ContractResolver,因此您可以使用PascalCasing作为您的属性。更多信息可以发现here

如果你不想创建Blob对象,你也可以试试这个:

JObject obj = JObject.Parse(json); 
string ns1 = (string)obj["ns1"]; 
string ns2 = (string)obj["ns2"]; 
+0

在.NET 4.0中,我们现在将DataContractJsonSerializer作为框架的一部分。 [Here](http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx)是如何使用它的。 – 2012-07-24 14:00:00

+0

你看过这个序列化器的蹩脚性能吗? http://james.newtonking.com/projects/json-net.aspx :-)我更喜欢这一个。 – 2012-07-24 14:01:01

+0

确实,这看起来很糟糕。但对于这样的数据,我认为您可能会遇到此性能问题,以换取无需扩展您的代码库。除了他的反序列化。反序列化没有太大的区别。 – 2012-07-24 14:05:04