2012-10-25 287 views
0

即時通訊目前正試圖反序列化得到了由JavaScript這樣bassed JSON:反序列化JSON

window.external.handlemessage(json); 

和其正由C#這樣的處理:

public void handlemessage(string json) 
    { 
      JavaScriptSerializer deserializer = new JavaScriptSerializer(); 

      Dictionary<string, object> deserializedDictionary1 = (Dictionary<string, object>)deserializer.Deserialize(json, typeof(object)); 
      Dictionary<string, object> deserializedDictionary2 = deserializer.Deserialize<Dictionary<string, object>>(json); 
      object objDeserialized = deserializer.DeserializeObject(json); 

    } 

的傳球作品罰款與純文本例如,但只是不與json ..

我已經嘗試了幾個東西,例如我在handlemessage提供的反序列化的例子,但json只是返回無效basi CLY。我試過的其他幾個例子也沒有做。

我試圖用java反序列化json,然後再次序列化它,沒有任何結果(因爲存在一些缺陷)。

此外,我試圖反序列化數據而不知道json結構。

是否有可能通過JavaScript傳遞json並用c#反序列化它?

+2

那麼使用JSON.NET DLL來處理呢? http://james.newtonking.com/pages/json-net.aspx –

+0

所以,'json'的價值是什麼,以及什麼,如果有的話,'deserializer.DeserializeObject()'return? – millimoose

+0

json.net對我來說真的不是一種選擇,因爲如果你知道我的意思,我想使用一個沒有dll的應用程序。 json的值是:{「text」:「hi」},是 – makkesk8

回答

2

此外,我試圖反序列化數據而不知道json結構。

對於要使用C#的dynamic類型:

JavaScriptSerializer js = new JavaScriptSerializer(); 
dynamic v = js.Deserialize<dynamic>("{\"text\" : \"hi\"}"); 

事實上,你可以直到你明白的對象是如何被映射開始有您的所有數據。

+0

如何從v獲取數據? – MC9000

+1

'v.text'應該可以工作。請閱讀此處:http://msdn.microsoft.com/en-us/library/dd264736.aspx –