2012-07-24 106 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