2015-12-21 96 views
0

可能重複什麼類型的是,JSON gzip的

我試着去分析一個網站和一個請求返回這樣的內容:

for (;;);{"__ar":1,"payload":null,"domops":[["appendContent","^div.fbProfileBrowserListContainer",true,{"__html":"\u003Cdiv ... ] 

這裏是圖像: enter image description here 是gzip壓縮什麼類型的還是什麼?我需要從c#解析它,但無法得到響應。迴應始終爲空或問號。需要在頭部請求中添加什麼參數來讀取響應。無法弄清楚。

+0

如何從httpwebrequest獲取它?可能嗎? –

+0

在將響應傳遞給Json解析器之前,只需從響應中刪除它(例如,使用'replace')。 – RobIII

+0

Okey我明白了,現在我需要在線解析器才能看到實際內容 –

回答

2

試着這麼做:

//Get actual response from server; here we use a hardcoded response 
var response = "for (;;);{\"__ar\":1,\"payload\":null,\"domops\"...."; 

var fixedresponse = response.Substring(9); 

,或者:

var fixedresponse = new Regex(@"^for \(;;\);").Replace(response, string.Empty); 

或者......

var fixedresponse = response.Substring(response.IndexOf("{")); 

,或者(但不太 '安全'因爲實際的JSON內容可能爲包含一個空的for循環):

var fixedresponse = response.Replace("for (;;);", string.Empty); 

...或者你能想到的其實任何其他字符串操作;無論如何得到這份工作(在實際的JSON之前刪除)。

您可以閱讀我在您的問題中編輯的「可能的重複項」,以獲得關於的解釋。爲什麼空的for-loop首先出現。

0

你可以做這樣的:

'for (;;);{"__ar":1,"payload":null,".....'.substr(9); 

正如一位評論已經指出的那樣,這是爲了防止代碼注入。 for循環之後的所有東西似乎都是有效的json。所以只需使用上面的代碼的輸出與您的json解析器。

+0

這是C#,這將是'myresponse.Substring(9)'(大寫字母S)。 – RobIII

+0

哦,是的,對不起,這是真的:)如果你有任何問題在C#中解析JSON,看看http://www.newtonsoft.com/json –